JS基本的判断类型的方法有三个,分别是:
- typeof JS类型判断函数
- instaneof 判断构造函数原型
- Object.prototype.toString()
typeof
使用:
1 | typeof true === 'boolean'; //ture |
判断的结果有六种:(返回字符串)
- “number”
- “boolean”
- “string”
- “function”
- “object”
- “undefined”
结果为”object”的有三种情况:==数组、对象、正则==
typeof最常用到的地方是判断一个已经定义的变量是否被赋值,即用到”undefined”这个结果
instanceof
instanceof需要两个操作数,用法:
1 | a instanceof b |
判断的结果只有==ture==和==false==两种
instanceof运算符是用来测试一个对象是否在其原型链原型构造函数的属性。其语法是==object instanceof constructor==
用于判断一个变量是不是某个对象的子类,它会沿着原型链proto向上找,如果找到匹配的对象,就返回true,否则返回false
左操作数必须为==对象==,如果不是则直接返回false
右操作数必须是==函数==,如果不是则直接抛出typeError
Object.prototype.toString()
JavaScript 标准文档只给出了一种获取 [[Class]] 值的方法,那就是使用 Object.prototype.toString。
1 | Object.prototype.toString.call([]) // "[object Array]" |