快捷搜索:  汽车  科技

javascript的基本数据类型有3种,2如何判断JavaScript

javascript的基本数据类型有3种,2如何判断JavaScript问题三:typeof Number(1)的返回值是什么?答案:不会报错,返回"undefined"。问题一:typeof 不能识别 null,如何识别 null?答案:如果想要判断是否为 null,可以直接使用===全等运算符来判断(或者使用下面的Object.prototype.toString 方法):问题二:typeof 作用于未定义的变量,会报错吗?

JavaScript 数据类型一共有 7 种:Undefined、Null、Boolean、String、Symbol、Number、Object。除了 Object 之外的 6 种属于原始数据类型。有时,我们还会细分 Object 的类型,比如 Array,Function,Date,RegExp 等。

判断方法

typeof

typeof 可以用来区分除了 Null 类型以外的原始数据类型,对象类型的可以从普通对象里面识别出函数:

javascript的基本数据类型有3种,2如何判断JavaScript(1)

问题一:typeof 不能识别 null,如何识别 null?

答案:如果想要判断是否为 null,可以直接使用===全等运算符来判断(或者使用下面的Object.prototype.toString 方法):

javascript的基本数据类型有3种,2如何判断JavaScript(2)

问题二:typeof 作用于未定义的变量,会报错吗?

答案:不会报错,返回"undefined"。

javascript的基本数据类型有3种,2如何判断JavaScript(3)

问题三:typeof Number(1)的返回值是什么?

答案:"number"。注意 Number 和 String 作为普通函数调用的时候,是把参数转化为相应的原始数据类型,也就是类似于做一个强制类型转换的操作,而不是默认当做构造函数调用。注意和 Array 区分,Array(...)等价于 new Array(...)

javascript的基本数据类型有3种,2如何判断JavaScript(4)

问题四:typeof new

Number(1)的返回值是什么?

答案:"object"。

javascript的基本数据类型有3种,2如何判断JavaScript(5)

instanceof

instanceof 不能用于判断原始数据类型的数据:

javascript的基本数据类型有3种,2如何判断JavaScript(6)

instanceof 可以用来判断对象的类型:

javascript的基本数据类型有3种,2如何判断JavaScript(7)

需要注意的是,instanceof 的结果并不一定是可靠的,因为在 ECMAScript7 规范中可以通过自定义 Symbol.hasInstance 方法来覆盖默认行为。

Object.prototype.toString

javascript的基本数据类型有3种,2如何判断JavaScript(8)

由上面的示例可知,该方法没有办法区分数字类型和数字对象类型,同理还有字符串类型和字符串对象类型、布尔类型和布尔对象类型,另外,ECMAScript7 规范定义了符号 Symbol.toStringTag,你可以通过这个符号自定义Object.prototype.toString 方法的行为:

javascript的基本数据类型有3种,2如何判断JavaScript(9)

因为 Object.prototype.toString 方法可以通过 Symbol.toStringTag 属性来覆盖默认行 为,所以使用这个方法来判断数据类型也不一定是可靠的。

Array.isArray

Array.isArray(value)可以用来判断 value 是否是数组:

javascript的基本数据类型有3种,2如何判断JavaScript(10)

猜您喜欢: