ES10 中新增了一个 Object.prototype.toString 方法,它最大的特点是可以识别出 Symbol 类型的变量。在以前的版本中,使用 Object.prototype.toString 来判断一个变量的类型时,只能得到它的基本类型(如 Object、Array 和 String)。
基本语法
Object.prototype.toString 方法的基本语法如下所示:
Object.prototype.toString.call(value)
其中,value 是要判断类型的变量,可以是任何类型的变量。
返回值
Object.prototype.toString 方法返回一个表示 value 变量类型的字符串,该字符串的格式为 [object type]
,其中 type
表示 value 变量的实际类型。
下面是一些常见的类型和对应的返回值:
类型 | 返回值 |
---|---|
undefined | [object Undefined] |
null | [object Null] |
Boolean | [object Boolean] |
Number | [object Number] |
String | [object String] |
Symbol | [object Symbol] |
Object | [object Object] |
Array | [object Array] |
Function | [object Function] |
RegExp | [object RegExp] |
Date | [object Date] |
Error | [object Error] |
Map | [object Map] |
Set | [object Set] |
示例代码
下面是一些使用 Object.prototype.toString 方法判断变量类型的示例代码:
-- -------------------- ---- ------- -------------------------------------------------- -- ------- ----- ------------------------------------------------------- -- ------- ---------- -------------------------------------------------- -- ------- -------- ----------------------------------------------- -- ------- ------- ----------------------------------------------------- -- ------- ------- ----------------------------------------------------------- -- ------- ------- ------------------------------------------------ -- ------- ------- ------------------------------------------------ -- ------- ------ --------------------------------------------- -- ----- -- ------- --------- ----------------------------------------------------- -- ------- ------- ---------------------------------------------- --------- -- ------- ----- ---------------------------------------------- ---------- -- ------- ------ ---------------------------------------------- -------- -- ------- ---- ---------------------------------------------- -------- -- ------- ----展开代码
指导意义
Object.prototype.toString 方法的新增,弥补了以前无法识别 Symbol 类型变量的缺陷,可以更加准确地判断变量类型。
不过需要注意的是,该方法只是用来判断变量类型的,不能用来判断变量的值是否为 null 或 undefined。例如,对于值为 null 或 undefined 的变量,它们都将返回 [object Undefined]
。
除了 Object.prototype.toString 方法,还有其他方法可以用来判断变量类型,例如 typeof 操作符和 instanceof 操作符等。在具体使用时要根据实际情况进行选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c27bf5314edc2684bc8519