为什么有的编程规范要求用 void 0 代替 undefined?
JavaScript undefined 关键字
今天看到一个问题,为什么有的编程规范要求用 void 0 代替 undefined?
看完以后脑壳一怂,以后还是用 void 0 来代替 undefined 比较好,为什么呢?我们来看下面的代码
typeof undefined
// 'undefined'
undefined = '123'
// 123
细细的想,JavaScript 的代码 undefined 居然是一个变量,然而居然不是关键字。这算是 JavaScript 的一个设计失误,是 JavaScript 语言公认的一个设计失误之一。所以,我们为了避免无意中被篡改,有的编程规范里面建议使用 void 0 来获取 undefined 值。
undefined 与 null 的区别
null 表示的是:“定义了但是为空”,比如
var x;
var y;
let a;
const s;
undefined 表示的是 空值,比如
console.log(hello);
console.log(stringToNumber)
放心地用 null,谨慎地用 undefined