JS编程错题总结(更新中)

1、以下代码执行的结果是()

for(var i=0;i<5;++i){

setTimeout(function(){

console.log(i+' ');

},100);

}

错误答案:0 1 2 3 4

正确答案:5 5 5 5 5

解析:setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。 所以匿名函数根本就没有立即执行(不是每次循环都打印了),而是在100毫秒后执行(依然按循环执行),匿名函数开始访问外部函数的变量时,变量的值早已成为最后一个即5(++i,先在最后一个数4的基础上+1,再执行下一次判断)

2、表达式”2”+3+4的值为?

错误答案:”27”

正确答案:“234”

解析:因为都是+,从“2”开始加的时候,先处理"2"+3,再处理"23"+4,结果"234" ;

如果是 "2"+3/4 ,结果就不一样了,先执行3/4 再和“2”加,结果是20;

如果是Number("2")+3+4,结果就是9 

你可能感兴趣的:(JS编程错题总结(更新中))