JS的闭包与定时器


当前第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如何删除string里某个字符

javascript怎么删除类

jsp和javascript是一个东西吗

详解javascript里的await/async的作用和用法

webpack如何实现loader?(附代码)

10个开发者经常问的javascript面试题(附答案解析)

怎样用 tensorflow.js 创建基本的 ai 模型?

javascript如何阻止事件冒泡和事件本身发生

javascript如何改变控件的显示位置

javascript如何实现“全选”和"全不选"功能?(代码示例)

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...