赞了回答2015-04-20
javascript里的函数和对象关系比较微妙,比如一个函数 function sayColor() { alert(this.color); } sayColor没有绑定到其他对象(这个函数是全局的),则this指代window。那么实际上sayColor函数就和window对象耦合在一起了。
赞了回答2015-04-11
由于NaN根本就不成立,if语句没有执行,所以控制台并没有打印!
赞了回答2015-04-11
大家講的都是原理, 我給你寫一個例子. 看你的表達意思是, 檢查這個variable是不是Number. 直接 a === +a, 這裡的 +a 是吧a 轉換為Number, 然後和原來的a比較.
赞了回答2015-04-08
比较两个方法, 方法2中打印函数print与对象a完全无关(两者无依赖关系), 即低耦合; 方法1中的print是对象a的属性, 两者有明显的依赖关系, 即高耦合.
提出了问题2015-04-08
赞了回答2015-04-08
一楼已经说了,补充下,你看到那个undefined是整个表达式最后的值,并不是console.log打印出来的。例如你在控制台输入foo会显示"55",你输入var a = 1会显示undefined,输入a = 2会显示2,输出的都是表达式本身的返回值
赞了回答2015-04-08
console.log("55"==55) //true console.log("55"===55) //false
赞了回答2015-04-07
输出 "undefined" 是因为你这段代码最后执行的一句没有返回值。 foo 的值是 "55",在需要它作为数字参与计算的时候,它会自动转换成数字 55,肯定不是 NaN,所以 if 中的语句未执行。
赞了回答2015-04-07
参数foo虽然是字符串, 但是在函数中会强制转成Number, 转换后就是数字55, 这个不是NaN, 所以没有打印It is not a number.