for (var i =0; i <5; i++){ setTimeout(function() { console.log(i) },i*i*1000) } var tag = 0 setInterval(function() { tag++ console.log('我是标记'+tag) },1000)
执行结果:
// 99758@zsh MINGW64 ~/Desktop // $ node test.js // 5 0秒后打印 // 5 1秒后打印 // 我是标记1 1秒后打印 // 我是标记2 2秒后打印 // 我是标记3 3秒后打印 // 5 4秒后打印 // 我是标记4 4秒后打印 // 我是标记5 5秒后打印 // 我是标记6 6秒后打印 // 我是标记7 7秒后打印 // 我是标记8 8秒后打印 // 5 9秒后打印 // 我是标记9 9秒后打印 // 我是标记10 10秒后打印 // 我是标记11 11 秒后打印 // 我是标记12 12 秒后打印 // 我是标记13 13 秒后打印 // 我是标记14 14 秒后打印 // 我是标记15 15 秒后打印 // 5 16 秒后打印 // 我是标记16 16 秒后打印 // 我是标记17 17 秒后打印 // 我是标记18 18 秒后打印 // 手动停止。。。
将上述代码改造下:
for (let i =0; i <5; i++){ setTimeout(function() { console.log(i) },i*i*1000) } var tag = 0 setInterval(function() { tag++ console.log('我是标记'+tag) },1000)
转换成js
'use strict'; var _loop = function _loop(i) { setTimeout(function () { console.log(i); }, i * i * 1000); }; for (var i = 0; i < 5; i++) { _loop(i); } var tag = 0; setInterval(function () { tag++; console.log('我是标记' + tag); }, 1000);
跑起来:
// 执行结果: // 99758@zsh MINGW64 ~/Desktop // $ node test.js // 0 0秒后打印 // 1 1秒后打印 // 我是标记1 1秒后打印 // 我是标记2 2秒后打印 // 我是标记3 3秒后打印 // 2 4秒后打印 // 我是标记4 4秒后打印 // 我是标记5 5秒后打印 // 我是标记6 6秒后打印 // 我是标记7 7秒后打印 // 我是标记8 8秒后打印 // 3 9秒后打印 // 我是标记9 9秒后打印 // 我是标记10 10秒后打印 // 我是标记11 11 秒后打印 // 我是标记12 12 秒后打印 // 我是标记13 13 秒后打印 // 我是标记14 14 秒后打印 // 我是标记15 15 秒后打印 // 4 16 秒后打印 // 我是标记16 16 秒后打印 // 我是标记17 17 秒后打印 // 我是标记18 18 秒后打印 // 手动停止。。。