码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript之数据类型

时间:2015-11-08 17:49:14      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

一.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

技术分享

前面两种类型检测方法比较常用!

技术分享

JavaScript之数据类型

标签:

原文地址:http://www.cnblogs.com/ZHeGeS/p/4865446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!