闭包,特别要理解变量的生命周期范围。
var value1 = 0; var value2 = 0; var value3 = 0; for (var i = 1; i <= 10; i++) { var s1 = i; (function () { var s2 = i; setTimeout(() => { value1 += i; // 10个11相加 value2 += s1; // 10个10相加 value3 += s2; // 1+2+3+...+10=55 }, 1); })(); } setTimeout(() => { console.log(value1); console.log(value2); console.log(value3); }, 100); //================输出的结果: 110 100 55