为什么js中要用void 0 代替undefined

这个是Backbone.js中的一句源码

if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;
此处void 0和undefined意义一样吗,我f12 chrome后,

undefined === void 0;//true
除了防止被重写外,还可以减少字节。void 0代替undefined省3个字节。
类似的还有很多常用的写法,看到别人这样写的时候就当是老司机的套路就行了。

//取整
parseInt(a,10); //Before
Math.floor(a); //Before
a>>0; //Before
~~a; //After
a|0; //After

//四舍五入
Math.round(a); //Before
a+.5|0; //After

//内置值
undefined; //Before
void 0; //After, 快
0[0]; //After, 略慢

//内置值
Infinity;
1/0;

//布尔值短写法
true; //Before
!0; //After

//布尔值短写法
false; //Before
!1; //After
---省略更多

原文:https://blog.csdn.net/qq_33834489/article/details/81540018

猜你喜欢

转载自www.cnblogs.com/ckAng/p/10496247.html