1. JS引擎是单线程,只有一个主线程。
2. setTimeout():指定在多少时间之后把定时器代码插入到JS引擎队列中。并不是指定在多少时间之后立即执行定时器代码。
setTimeout()参数问题
1. setTimeout(console.log("1"),1000);// 会立即执行console.log("1");
2. setTimeout("console.log('1')",1000);//会在1秒后把代码插入JS引擎;
3. function text () {
var i = 0;
setTimeout("console.log(i)",1000);
};
text(); //并不会正确打印‘0’;
4. function text () {
var i = 0;
setTimeout(function () {console.log(i)},1000);
};
text(); //会正确打印‘0’;
5. function text () {
for(var i = 0; i < 10; i++) {
setTimeout(function() {console.log(i)},1000);
}
};
text();//会打印10个 '10';
6. function text () {
for(let i = 0; i < 10; i++) {
setTimeout(function() {console.log(i)},1000);
}
};
text();//会打印0 ...9';
7. function hellow (name) {
let msg = name;
consoel.log(msg);
setTimeout(hellow, 1000, msg)
}
hellow('hellow')
会无限间隔一秒打印hellow