了解JavaScript中的基元数据类型
Understanding primitive data types in JavaScript
在javascript中,typeof null=="object"为true。但是null instanceOf Object为false。我对此感到困惑,直到我在Web开发人员的专业JavaScript中读到,
如果instanceOf与基元值一起使用,它将始终返回FALSE,因为基元不是对象。
为什么,如果基元数据类型不是对象,typeof null=="object"会为true?
typeof
运算符基本上很古怪。这是规范中的文档。从该表中,您可以看到运算符的定义很简单,因此typeof null
的结果是"对象"。
在JavaScript中,null
实际上是一种自己的类型。这是一种特殊的原始类型。
JavaScript基元类型实际上是而不是对象。它们有时看起来像对象,因为语言语义(特别是.
和[ ]
运算符的语义)使得基元自动与相应类型的对象"装箱"。布尔基元、数字基元和字符串基元都是如此。对于null
,没有这样的对应对象类型。
正因为如此,
var len = "some string".length;
有效,即使字符串基元没有"长度"属性。
还有一件事:在Object原型上使用"toString"函数作为typeof
运算符的一种"改进"版本是很常见的。
alert( Object.prototype.toString.call( null ) ); // [object Null]
该函数返回的字符串不是最方便处理的东西,但它们确实提供了比typeof
更精细的粒度。
相关文章:
- javascript解释器如何理解变量的数据类型
- 为什么不'我们在javascript中使用函数参数的数据类型
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- 在 Javascript 中更改数据类型
- 使用 ng-change 对输入类型数据进行 JavaScript 取消事件
- JavaScript中的“符号”原始数据类型是什么?
- 了解JavaScript中的基元数据类型
- 数值的 JavaScript 数据类型
- javascript中具有不同数据类型的数组
- 如何使用 javascript 获取剑道网格列的数据类型
- 如何判断javascript变量的数据类型是Array
- javascript中是否有字典数据类型
- 为什么要在javascript中使用数据类型
- 当变量的数据类型在 javascript 中为 'Null'
- 我什么时候应该在 JavaScript 中使用数据类型类
- 自定义数据类型,css和javascript
- 声明与 JavaScript 中存在的数据类型同名的类
- 什么是函数的数据类型:函数还是对象?在 JavaScript 中
- 如何从字符串 javascript 中获取数据类型
- 引用数据类型 JavaScript