最近在看一些前端工具库的源码,发现一个有意思的东西:在underscore和zepto中用void 0 代替 undefined。原因是什么呢?
1. void 0 比undefined占用的空间更小,运行更快
2. undefined不是保留词,只是全局对象的一个属性,在低版本IE中可以被重写,另外,undefined 在 ES5 中已经是全局对象的一个只读(read-only)属性了,它不能被重写。但是在局部作用域中,还是可以被重写的。
3. void 运算符能对给定的表达式进行求值,然后返回 undefined。也就是说,void 后面你随便跟上一个表达式,返回的都是 undefined,都能完美代替 undefined
void 0 和 undefined
最新推荐文章于 2025-06-04 12:18:59 发布