void 0和undefined的区别

水墨寒
  • 1.1k

value === undefined
value === void 0

zepto源码中把 undefined 换成了 void 0
除了早期的浏览器中undefined 可以被替换 还有别的什么用意这里应该不是防止被替换,给的说法是更快。

回复
阅读 4k
2 个回答
✓ 已被采纳

void 会执行后面的表达式并返回 undefined,可以用于执行一些只需要 side effect 而不需要返回值的表达式。
void 0 === undefined,但是我觉得 undefined 更清晰,而且可以采用各种手段防止 undefined 被重定义。整个 zepto 里只有这一个文件 里用到了 void 0,看来也并不是提倡使用 void 0.
另外 void 0 的确比 undefined 快一点,可能是 iOS 3 上差距比较大吧(仅猜测,欢迎有条件的同学测试下)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏