js类型判断是JS中非常重要的一部分 – 字节跳动面试
typeof
七种基本类型
- string
- number
- boolean
- null
- undefined
- object
虽然使用typeof null,会返回object,但实际上null本身是基本类型(可以通过 === 判断是不是null)
typeof 1 // "number"
typeof '1' // "string"
typeof true // "boolean"
typeof Symbol(1) // "symbol"
typeof {} // "object"
typeof [] // "object"
typeof function(){} // "function"
typeof Symbol(1) // "symbol"
typeof undefined // "undefined"
typeof null // "object",
面试的时候,被问到,既然typeof [] 是一个数组,那么如何判断一个数组
1.Array.isArray([]) // true
2. [] instanceof Array // true
3. Object.prototype.toString.call([]);//输出的是[object,Array];
instanceof
instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。
基础类型
- String
- Number
- Boolean
- Undefined
- Null
- Symbol;
复杂类型:Array,Object;
其他类型:Function、RegExp、Date。
语法:[对象] instanceof [构造函数]
let num = 1
num instanceof Number // false
num = new Number(1)
num instanceof Number // true