- 问题1
JS代码如下:
var a = 10;
alert((a++) + a);
alert(++a);
那么输出的值会是多少?
正确答案第一次是21,第二次是12,有多少人跟我一样第一反应是20和21呢?
其实原理很简单,自己多想一想就能明白;
在第一个ALERT中,a++后的值还是10,然后立刻自增1,此时再执行+a时它的值已经是11了,然后11 + a 的值是21;
在第二个alert中,此时a的值是11,a的值是11,a的值是11,自己犯迷糊的地方说三遍,++a的值自然就是12了。
那么下面的代码输出应该是多少?
alert(a++);
alert(++a);
自然是10和12了,其实如果先看后面的代码,再看第一段代码,估计出错的人就少了吧。
还有这个
- 问题2
var a = 0/0;
var b = 0/0;
alert(a == b);
答案应该是false,原因很简单:0/0返回Nan,再JS中,NaN和其他任何值永远不相等,自然也包括NaN自己