💡
原文中文,约5200字,阅读约需13分钟。
📝
内容提要
《你不知道的javascript》上卷第一部分介绍了eval和with关键字的作用和问题,自执行函数、var和let关键字的特点,闭包的概念和应用,以及解决setTimeout函数中的问题的方法。
🎯
关键要点
- eval关键字用于将字符串转换为代码,但因安全和作用域问题几乎不被使用。
- with关键字创建新的作用域,允许直接访问对象属性,但可能导致性能问题。
- 自执行函数避免了变量污染,并且可以立即执行。
- let关键字不会提升变量,也不会扩大作用域范围,生成块级作用域。
- 闭包是一个函数返回另一个函数,后者引用了父函数的变量,导致无法被回收。
- setTimeout中的闭包问题导致异步函数引用同一作用域的变量,可能导致意外结果。
- 使用自执行函数或let可以解决setTimeout中的闭包问题,确保每次迭代都有独立的作用域。
➡️