美文网首页
js:用void 0替换undefined

js:用void 0替换undefined

作者: Mr君 | 来源:发表于2019-07-08 14:13 被阅读0次
  • undefined作为js中的一个全局对象的属性,并不是关键字或保留字。并且在ES5之前,undefined都是可以被重写的。(ES5以后规定undefined为全局的只读属性,但是局部变量中依然可以被改写,如:
    改写undefined.png
    容易出现差错)
  • 关键字void能对给定的表达式求值,但是返回值都是undefined。并且不能被重写。
image.png
  • 所以使用void 0代替undefined,来避免因重写undefined而带来的不确定的问题

另附https://segmentfault.com/q/1010000007406985?_ea=1343662,大神提供的另一个理由,void 0undefined省了三个字符,还有一些简便写法:

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

相关文章

  • js:用void 0替换undefined

    undefined作为js中的一个全局对象的属性,并不是关键字或保留字。并且在ES5之前,undefined都是可...

  • 重学前端(二):JS里面的基本数据类型

    js里面的关于类型: 1,为什么有的编程规范,要求用void 0 代替undefined呢? Undefined其...

  • 用void 0替代undefined

    undefined不是保留字。也就是说undefined可以被重写。ES5中是全局的对象的一个只读属性。但是在块级...

  • 问题总结

    1、为什么要用void 0 替代undefined? a)某些情况下用undefined判断存在风险,因undef...

  • js 中的 void 0

    在很多源码中的 constant.js 文件中,会发现const UNDEFINED = void 0。 为什么不...

  • 一些小Tips

    1、void 0 代替 undefined 经常会看到 if (callback !== void 0 ) opt...

  • === void 0 及 === undefined

    参考:https://segmentfault.com/q/1010000007406985/a-10200000...

  • void 0 与 undefined

    在看React的react-dom.js源码的时候,发现void 0,在很多地方用到。回忆起最初使用void 0的...

  • void 0与undefined

    最近在查看ts编译源码的时候,注意到一个陌生的void 0语句,似乎是取代了undefined。so,为什么要用v...

  • void 0和undefined

    参考链接:1. JavaScript中void 0和undefined[https://www.cnblogs.c...

网友评论

      本文标题:js:用void 0替换undefined

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