为什么有的编程规范要求用 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

原文地址:https://www.cnblogs.com/ssaylo/p/13140543.html