console.log('' == 0 == false); console.log(undefined == null); 8、请写出输出结果 for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000*i) }
时间: 2023-11-30 09:03:39 浏览: 72
表达式代码,可以输入相关的字符串计算出结果
1. 输出结果为 true,因为''和0都被当作false处理。
2. 输出结果为 true,因为undefined和null在相等比较时被认为是相等的。
3. 输出结果为 5,因为 setTimeout 函数是异步的,所以for循环会在所有 setTimeout 函数执行之前就结束了。当 setTimeout 函数开始执行时,i已经变成了5。要想让输出结果为0、1、2、3、4,可以使用闭包来保存每个i的值:
```
for (var i = 0; i < 5; i++) {
(function(j) {
setTimeout(function() {
console.log(j);
}, 1000*j);
})(i);
}
```
阅读全文