for(var i=0;i<=3;i++){ setTimeout(function() {  console.log(i)  }, 10);} 答案:打印4次4 这道题涉及了异步.作用域.闭包 settimeout是异步执行,10ms后往任务队列里面添加一个任务,只有主线上的全部执行完,才会执行任务队列里的任务,当主线执行完成后,i是4,所以此时再去执行任务队列里的任务时,i全部是4了.对于打印4次是:  每一次for循环的时候,settimeout都执行一次,但是里面的函数没有被执行,而是被…
涉及异步.作用域.闭包 1.settimeout是异步执行,100ms后往任务队列里面添加一个任务 2.let不仅将i绑定到for循环块中,事实上它将其重新绑定到循环体的每一次迭代中 3.闭包 setTimeout是一次执行函数,这里是100ms后执行,仅仅执行一次:for(var i=0;i<=3;i++),i的每次取值都是执行setTimeout这个函数,并没有执行setTimeout里面的function(即闭包函数),setTimeout里面的function是有setTimeout的定…
看面试题时,发现了一道较为经典的面试题,代码如下 for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); },0); }; //答案:4 4 4. 很多初学者,可能会以为答案会是:1 2 3,但仔细研究,你会发现这道题涉及了异步.作用域.闭包.由于网上有很多类似的内容,故我这里就不再赘述,附上链接如下: https://www.cnblogs.com/destinyruru/p/5823760.html https://www.…
for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) } 遇到这种问题 如何用解决呢 for(var i=0;i<10;i++){ ((j)=>{ setTimeout(function(){ console.log(j)//1-10 },1000) })(i) } 原理是 声明了10个自执行函数,保存当时的值到内部…
var a = {m:1}; var b = a; a.n = b ={n:1}; console.log(a); console.log(b); 确定b为{n:1},所以a为 {m:1,n:{n:1}}吗?为什么? 问前辈得到的答案:刚开始a对象有一个属性m,等于1,后面的赋值语句给它增加了一个属性n,n是一个对象,这个对象里有一个属性n,等于1,就是这样解释的…
一道经典面试题-----setTimeout(function(){},0) 转载: http://www.w3cfuns.com/notes/17398/e8a1ce8f863e8b5abb530069b388a158/page/3.html#tagsbar 先看题: for (var i = 0; i < 3; i++) { setTimeout(function() { console.log(i); }, 0); console.log(i); } 结果是:0 1 2 3 3 3 很多公…
for (var i = 0; i < 3; i++) { setTimeout(function() { console.log(i); }, 0); console.log(i); } 结果是: 0 1 2 3 3 3 分析: 1.在实践中,setTimeout 会在其完成当前任何延迟事件的事件处理器的执行,以及完成文档当前状态更新后,告诉浏览器去启用 setTimeout 内注册的函数. 2.setTimeout是异步的.正确的理解setTimeout的方式(注册事件): 有两个参数,第一…
  JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力..   小森执行一个函数  没有全局变量 写一个从10到0的倒计时   用console.log打印  不可以用 setInterval   小白..额,可以多次调用setTimeout()吗     某个被打败的神Function fn(a){console.log(a--);if(a>=0)   Settimeo…
张艳涛写于2020-01-25,参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数 语法 function.call(thisArg, arg1, arg2, ...) 参数 thisArg可选的.在 function 函数运行时使用的 this 值.请注意,this…
#!/usr/bin/env python import re def f1(arg): return 1 origin = "1 - 2 * ( ( 60 - 30 + ( -40.0 / 5 ) * ( 9 - 2 * 5 / 3 + 7 / 3 * 99 / 4 * 2998 + 10 * 568 / 14 )) - ( - 4 * 3 ) / ( 16 - 3 * 2))" print(eval(origin)) while True: print(origin) ret =…