标签:
一.JS中具有5种基本类型和1种对象类型(引用类型)
5种基本类型:number\string\null\undefined\boolean
1种对象类型:Function、Array、Date
二.类型转换
巧用+/-进行类型转换
三. == 和 ===
==:
1.对于基本类型而言,会尝试进行类型转换之后再比较!
2.而对于引用类型,会比较是否是指向同一个对象(地址比较)
===:
1.类型不同返回false
2.类型相同:
null===null
undefined===undefined
四.特殊值:NaN
NaN:Not a Nnmber
引入该值的初衷是掌控“将本来要返回数字但是却没有返回数字”的情况。这种情况(例如“I”*3)在其他语言中是会报错的,但在JS中并不会报错,而是返回值NAN。使得流程可以继续执行。
NaN的特殊性:跟任何类型比较都不相等,包括它自己!所以要判断一个值是否是NAN,必须使用window对象上面的isNAN这个全局函数!
1.对于基本类型会尝试进行number类型的转换后再进行判断
2.对于对象类型,会首先调用其valueOf尝试转换后再进行判断
var o = { valueOf:function(){ return "44"; } } isNaN(o);//false
五.包装对象
一些基本类型具有对应的包装对象:
‘str’:包装对象 String object
123 :包装对象 Number object
true :包装对象 Bealon object
当把基本类型尝试以对象的方式使用它的时候(比如使用它的length属性,增加它的属性),JS会将其转化为包装类型的对象(临时对象),但当完成这样一个访问后,JS就会销毁这个临时对象!
六.类型检测
1.typeOf:基本类型、函数类型
2.instanceof:基于原型链进行判断的操作符
obj instanceof Object 判断obj的原型链上是否有Object.prototype对象(即obj是否是Object的实例)
3.Object.prototype.toString
前面两种类型检测方法比较常用!
标签:
原文地址:http://www.cnblogs.com/ZHeGeS/p/4865446.html