JaveScript 尝试着尽可能独立于数据类型。一般情况下,JavaScript会自动做类型转换,使得一个表达式可以被正常运行而不是 fail。但是,这和JS新手预期的还是挺不一样的。比如说,1+“1” 并不会被看成 2,而是 string “11”。1==“1” 也不会被计算成 true。很多简单的检测是否相等的式子很容易出错。
谜题:
if(a==b)alert("a equals b");
if(a==0)alert("a is zero");
if(b==0)alert("b is zero");
上面这段代码一开始运行得挺好,后来出现了一个小 bug。
第一个式子并没有显示 "a equals b"。
第二个式子显示了 "a is zero".
第三个式子显示了 "b is zero"
既然 a 和 b 是不相等的,为什么 a 是 0,b 也是 0 呢?到底发生了什么? a 和 b 是什么样的值才会导致这样的结果?答案明天揭晓
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。