typeof和instanceof的区别
- typeof与instanceof都是用来判断数据类型的,返回值是否为空等情况,但是他们具体的情况该如何区分?
1.首先两者返回的值不同。
typeof返回的值是一个字符串,而, instanceof返回的是布尔类型的值,判断是true或者false。
typeof返回的类型有: number,boolean,string,function,object,undefined,
typeof的局限:Null,Array。
instanceof的作用:instanceof用于判断某个变量是否是某个对象的实例,返回值为true或false
console.log(typeof (123));//typeof(123)返回"number"
console.log(typeof ("123"));//typeof("123")返回"string"
var param1 = "string";
var param2 = new Object();
var param3 = 10;
console.log(typeof(param1)+"\n"+typeof(param2)+"\n"+typeof(param3));
// string object number
- 备注:简单提及下js的数据类型:
Number 类型 -------数字类型
String 类型 ----------字符串类型
Boolean 类型---------- 布尔类型
Array 类型-------------数组类型
Object 类型-----------对象类型 - Null、Undefined ---- 空或未定义
number:数字会返回number类型
boolean:boolean值只有true和false
undefined:当变量未被声明时会返回undefined,这与var name;alert(name);是不一样的。后者是指变量已声明,但未被初始化。
function:当运算数为函数时,返回function
obeject:对象、数组、null会返回object。正因为typeof遇到数组、null都会返回object,所以我们要判断某个对象是否是数组或者某个变量是否是对象的实例时就要使用instanceof