摘要:一道笔试题第一次第二次第三次你以为这会输出什么小心别跳入陷阱里。结果为秒后输出秒后输出为什么呢因为是全局变量,当循环执行结束后当然等于数组长度,所以三次结果都是第三次。
一道笔试题
var arr = ["第一次","第二次","第三次"]; for(var i=0;i你以为这会输出什么?小心别跳入陷阱里。
结果为:undefined
10秒后输出 undefined
20秒后输出 undefined
为什么呢?因为i是全局变量,当for循环执行结束后,i当然等于数组长度,所以三次结果都是第三次。实际测试结果都是undefined,因为只有当i=3的时候才结束for循环,而arr[3]表示数组的第四个元素,实际arr数组里只有三个元素,所以arr[3]也就等于undefined
使用闭包的方式解决var arr = ["第一次","第二次","第三次"]; for(var i=0;i关于setTimeout执行流的问题,这里有一个栗子: console.log(1); setTimeout(function(){console.log(2);},0); console.log(3); setTimeout(function(){console.log(4);},0); console.log(5);执行结果
13524以上执行结果,可以分析到虽然setTimeout得时间设置为0,但setTimeout需要等代码流执行结束后再来执行setTimeout函数块
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87658.html
摘要:大名鼎鼎的闭包面试必问。闭包的作用是什么。看到闭包在哪了吗闭包到底是什么五年前,我也被这个问题困扰,于是去搜了并总结下来。关于闭包的谣言闭包会造成内存泄露错。闭包里面的变量明明就是我们需要的变量,凭什么说是内存泄露这个谣言是如何来的因为。 本文为饥人谷讲师方方原创文章,首发于 前端学习指南。 大名鼎鼎的闭包!面试必问。请用自己的话简述 什么是「闭包」。 「闭包」的作用是什么。 首先...
摘要:完美的闭包,对,闭包就这么简单。这仅仅是闭包的一部分,闭包利用函数作用域达到了访问外层变量的目的。此时一个完整的闭包实现了,的垃圾回收机制由于闭包的存在无法销毁变量。 1.闭包是指有权访问另一个函数作用域中的变量的函数。 上面这段话来自 javascript 高级程序设计 第三版 P178 。作者说闭包是一个函数,它有访问另一个函数作用域中的变量的能力。 2.函数访问它被创建时所处的...
摘要:到底什么是闭包这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。上面这么说闭包是一种特殊的对象。闭包的注意事项通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。从而使用闭包模块化代码,减少全局变量的污染。 闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个...
阅读 1225·2021-11-19 09:40
阅读 3036·2021-11-02 14:47
阅读 2924·2021-10-11 10:58
阅读 3176·2019-08-30 15:54
阅读 2621·2019-08-30 12:50
阅读 1692·2019-08-29 16:54
阅读 427·2019-08-29 15:38
阅读 1197·2019-08-29 15:19