红宝书
Jedi Hongbin
hongbin.xyz meta.hongbin.xyz kmyc.hongbin.xyz
展开
-
null和undefined的使用场景
摘自 红宝书第四版32页 undefined派生自null null意为空对象指针 这也是typeof null是object的原因 据此 null被用于初始化将来保存对象类型的变量 而undefined不同 永远不必显式将变量设置为undefined 任何时候只要变量保存对象 而当时又没有对象可保存 就要用null来填充该变量。这样就可以保持null是空对象指针的语义 ...原创 2021-11-18 08:31:13 · 845 阅读 · 0 评论 -
红宝书关于var和let循环输出差异的解答
在使用 var 的时候,最常见的问题就是对迭代变量的奇特声明和修改: for (var i=0:i<5;++i){ setTimeout(() => console.log(i),0) } 你可能以为会输出 0、1、2、3、4 实际上会输出5、5、5、5、5 之所以会这样,是因为在退出循环时,迭代变量保存的是导致循环退出的值:5。 在之后执行超时逻辑时所有的i都是同一个变量,因而输出的都是同一个最终值。 for (let i=0:i<5;++i){ setTimeout(() =&g原创 2021-11-05 08:52:09 · 172 阅读 · 0 评论