简介
在 ES9(ECMAScript 2018)中,针对 typeof null 进行了修改,它将返回 'null' 而不再是 'object' 了。这是一个非常简单但是很有用的变化,开发人员可以更容易地使用它来区分一个变量是否为 null。
typeof 运算符
在 JavaScript 中,typeof 运算符用于确定给定变量的类型。 typeof 运算符返回一个字符串,表示给定变量的数据类型。例如:
typeof 'hello' // 'string' typeof 100 // 'number' typeof true // 'boolean' typeof [1, 2, 3] // 'object' typeof { name: 'Bob' } // 'object'
为什么 typeof null 返回 'object'?
typeof null 返回 'object' 在 JavaScript 中被认为是一个历史性错误。这是在早期版本中由 C++ 代码库中的问题引起的。在 C++ 中,null 被视为指向特殊对象的指针,因此在最初的实现中 typeof null 就被设置为 'object'。随着时间的推移,typeof null 就成为了 JavaScript 中的标准。
ES9 中的 typeof null 修改
在 ES9 中,typeof null 被修改为返回 'null'。这是一项非常简单但是实用的修改。使用它可以更方便地判断一个变量是否为 null:
let variable = null; console.log(typeof variable); // 'null' let anotherVariable = {}; console.log(typeof anotherVariable); // 'object'
使用 typeof null 的指导意义
有了这个修改,我们可以使用 typeof null 来更好地检测 null 变量。我们不必像以前那样判断它是否是 object 或者 null,直接使用这个新的 typeof 运算符就好了。具体来说,我们可以在开发过程中更好地理清代码中的不同数据类型。
示例代码
-- -------------------- ---- ------- --- -------- - ----- -- ------- -------- --- ------- - ----------------- -------- -- ------- - ---- - ----------------- -------- -- --- ------- - --- --------------- - --- -- ------- --------------- --- ------- - ----------------- -------- -- ------- - ---- - ----------------- -------- -- --- ------- -
结论
在 ES9 中,typeof null 将返回 'null',而不是以前的 'object'。这是一个非常简单但又非常有用的修改,能够让我们更清晰地区分出 null 数据类型,提高代码的可读性,减少因为历史遗留问题所带来的混乱。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670a1eacd91dce0dc87ee96b