JS中变量没有类型的概念,值才有类型。
JS内置7种类型包括:
undefined null 、string number boolean、 object 、symbol(ES6新增)
补充知识点:
object是个"复杂类型",其他称"基本类型";
object的子类型有:Function、Date、Error、RegExp、Array;
类型判断的方法有如下3种:
-
typeof
return:字符串。可能的值包括除null之外的所有内置类型。[typeof null === ‘object’]
usage:
// xx 表示要判断的那个变量 typeof xx -
instanceof
return:boolean值
usagae:
// xx 表示要判断的那个变量; // yy 可能的值包括所有object的子类型,及Object本身 xx instancdof yy -
Object.prototype.toString.call(xx)
return:字符串。 形如 "[object Array]", 第二个值包括所有object的子类型
usage:
// xx 表示要判断的那个变量; Object.prototype.toString.call(xx)
归纳总结:
typeof 主要用来判断js内置的基本类型;
instanceof、Object.prototype.toString.call 主要用来判断复杂类型;
判断一个变量 是否声明 或 是否被赋值的常用方法:
// xx 表示要判断的那个变量
if (typeof xx === 'undefined')