JS 中 typeof instanceof constructor Object.prototype.toString.call()判断数据类型

拈花ヽ惹草 提交于 2019-12-13 07:48:36

JS 中 typeof instanceof constructor Object.prototype.toString.call()判断数据类型

JS的数据类型: 基础数据类型和复杂数据类型(引用数据类型)

1. typeof 返回一个字符串类型

MDN介绍

  • 语法
    typeof 运算符后接操作数 操作符返回一个字符串 字符串 字符串,表示未经计算的操作数的类型

    typeof operand
    typeof(operand)
    

operand一个表示对象或原始值的表达式,其类型将被返回。

描述 结果
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol "symbol"
Function "function"
Object "object"
  • 示例
// 数值 number
typeof 1 // "number"
typeof NaN // "number"
typeof 3.14 // "number"
typeof Infinity // "number"

// 字符串
typeof "小火车" // "string"
typeof typeof typeof 1 // "string"

// 布尔值
typeof true // "boolean"

// Symbol
typeof Symbol() // "symbol"
typeof Symbol("foo") // "symbol"

// Undefined
typeof undefined // "undefined"

// Null
typeof null // "object"

// Object
typeof {name: "小火车"} // "object"
typeof /regex/ // 正则也是对象 "object"

// Function
typeof function() {} // "function"
typeof class C {} // "function"
  • 注意 注意 注意 注意 注意
    • 当使用 new 操作符的时候也是对象, 但是只有函数function例外
    let str = new String('String')
    let num = new Number(100);
    typeof str  // "object" 
    typeof num  // "object" 
    
    let func = new Function()
    typeof func // "function"
    
    • 当判断Null的时候会返回一个"object"的字符串, 因为null代表的是空指针对象
    // JavaScript 诞生以来便如此
    typeof null // 'object'
    
    • 当使用()语法的时候, 括号有无将决定表达式的类型
    typeof ( 1 + "小火车") // "string"
    typeof 1 + "小火车" // "number小火车"
    
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!