javaScript中对typeof 和 instanceof 的使用及理解

F&Q:

Q1:instanceof 和 typeof 是什么?

用于判断数据类型。

Q2:它们能做什么?

根据数据类型判断进行一些逻辑编码。如:当判断出该参数类型为 number 则转换成 String 放入数组。

Q3:为什么说 typeof 一般用于基本类型 instanceof 一般用于引用类型?

因为便利。所以有了以下栗子:

//typeof 一般用于基本类型
var name = "bob",
age = 13;
alert(typeof(name)); //String
alert(typeof(age)); //Number

//instanceof 一般用于引用类型
var obj={};
var arr=[];
alert(obj instanceof Object); //true
alert(arr instanceof Array); //true


反面栗子如下:

如果引用类型如果用typeof 则会显示object类型,而这样区分不了这个参数是对象还是数组还是其他的引用类型。

如果基本类型用instanceof,则必须封装成对象进行比较。

例:var name = "bob"; name.instanceof(String);  // 现在的name是基本类型。而String是引用类型。结果肯定是false。

以上更改为:var name = new String("bob") ; name.instanceof(String); //true 引用类型进行比较

以上代码会将其转换为引用类型在进行比较。这样使用繁琐还不如typeof来的快捷。

你可能感兴趣的:(javaScript中对typeof 和 instanceof 的使用及理解)