标签:
Q3:怎么检测数据类型?有哪些方式?其原理是什么?
Typyof检测基本数据类型,,返回值是一个代表数据类型的字符串,而且是小写的;instanceof检测对象类型(原理是获取某一对象实例)。Constructor检测对象的已有属性类型或者基本数据类型;object.prototype.toString()得到一个表示对象的类型的字符串。此方法可有效判断数组,函数,正则表达式,等对象类型(引用类型)可判断null和undefined;
描述一下Typeof和instanceof在判断类型的时候,内部是怎么进行的。
Q4:JavaScript中==和===的区别是什么?什么情况下使用它们?
==如果两个操作数相等则返回true(操作符会先强制转换操作数再判断然后再比较相等性),如果两个值类型不同,但他们仍可能==,如:一个是null 一个是undefined;他们==;一个true 一个为1,他们==;一个是数字一个是字符串,转化后值相等,则==;一个值是对象,另一个是数字,将对象转换成原始类型的值(用tostring()或者valueof()),转化后若值相等则也是==;不严格判断类型,只比较值大小时使用。
===判断值和类型都是否相等(在比较之前不转换操作符)。类型不同就算值想同也不能===;比如两个数字值相同,除非一个或两个数字都是NaN(此时不等同),否则他们等同。(NaN与自身不等同,若要检测可使用全局函数isNaN()),严格判断类型以及值比较时使用。
这里提及NaN 对NaN进行描述。
NaN:not a number,代表一个非数值的特殊值,用于指示某个值不是数字,可用isNaN()全局函数来判读一个值是否是NaN值,NaN与所有值都不等,包括它自己。
标签:
原文地址:http://www.cnblogs.com/Decmber/p/4665548.html