当前第2页 返回上一页
下面这段代码输出结果是? 为什么?
1 2 3 4 5 6 | var flag = true;
setTimeout( function (){
flag = false;
},0)
while (flag){}
console.log(flag);
|
不会输出结果,因为setTimeout(function(){flag = false;},0)会在所有代码执行完毕后才运行,``flag初始值为true,所以while会一直循环下去,console.log(flag)也不会被访问,但是由于某些浏览器会存在环路保护功能,所以也有可能输出为true```。
下面这段代码输出?如何输出delayer: 0, delayer:1...(使用闭包来实现)
1 2 3 4 5 6 | for ( var i=0;i<5;i++){
setTimeout( function (){
console.log( 'delayer:' + i );
}, 0);
console.log(i);
}
|
代码:
1 2 3 4 5 6 7 8 | for ( var i=0;i<5;i++){
( function (i){
setTimeout( function (){
console.log( 'delayer:' + i );
}, 0);
})(i)
console.log(i);
}
|
烧脑题
如下console.log的结果是什么?为什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function fn(a,b) {
console.log(b);
return {
fn: function (c){
return fn(c,a);
}
};
}
var a = fn(0);
a.fn(1);
a.fn(2);
a.fn(3);
var b = fn(0).fn(1).fn(2).fn(3);
var c = fn(0).fn(1);
c.fn(2);
c.fn(3);
|
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
简易的CSS3点击响应动画案列
如何使用python来判断图片相似度
以上就是JS的闭包与定时器的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
javascript基础入门买什么书
javascript是一种运行在什么语言
javascript使用什么标签实现
javascript如何阻止事件冒泡和事件本身发生
javascript中load用法是什么
javascript与html的结合方法详解
javascript语言有什么特点
javascript如何实现弹出层效果?(代码分析)
http协议发展过程一览
javascript怎么判断是否为数字类型
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » JS的闭包与定时器