美文网首页
老司机带你飞系列(1)-- void 0 和 undefined

老司机带你飞系列(1)-- void 0 和 undefined

作者: 那么你就是我的 | 来源:发表于2022-01-19 15:58 被阅读0次

    事实上,void的返回值都是undefinedhttps://developer.mozilla.org...

    在ES5之前,window下的undefined是可以被重写的,于是导致了某些极端情况下使用undefined会出现一定的差错。

    所以,用void 0是为了防止undefined被重写而出现判断不准确的情况。

    注: ES5之后的标准中,规定了全局变量下的undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。

    补充一下:非严格模式下,undefined是可以重写的,严格模式则不能重写。

    综述:除了防止被重写外,还可以减少字节。
    类似的还有很多常用的写法,看到别人这样写的时候就当是老司机的套路就行了。

    //取整
    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
    

    相关文章

      网友评论

          本文标题:老司机带你飞系列(1)-- void 0 和 undefined

          本文链接:https://www.haomeiwen.com/subject/yrbrhrtx.html