JS数据类型总结

一 数据类型

  原始类型:

    number,string,boolean,null,underfined

  对象类型:

    object(function,array,date,...)

二 隐式转换

  巧用+/-转换

  num - 0 转换为数字

  num + "" 转换为字符串

  a == b 类型相同,同===;类型不同,尝试类型转换和比较

  number ==  string 转number 1 == "1.0" //true

  boolean == ? 转number 1==true //true

  object == number | string 尝试对象转为基本类型 new String("Hi") == "Hi" //true

  0 == false

  null == underfined

  new Object() == new Object()

  [1,2] == [1,2]

  其他情况:false

  a === b 先判断类型,类型不同返回false;类型相等,判断数值/字符串/布尔值....

  (NaN不等于NaN,new Object() 不等于 new Object())

 

三 包装对象

  当把一个基本类型当做对象类型使用时,如访问length属性,或者添加一些属性,js它会智能的把基本类型转换成对应的一个包装类型对象,相当于new String(),内容和str的值一样,当返回结果之后,临时对象会被销毁(str.t).

  var str = "string";

  alert(str); //string

  str.t = 10;

  alert(str.t); //underfined

 

四 类型检测

  typeof(适合函数类型和基本类型的判断,遇到Null失效)

  

  instanceof(适合判断对象类型,自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效)

  

  Object.prototype.toString(IE6/7/8 返回[object Object])

    

  constructor,duck type

posted @ 2016-11-10 19:51  丿阿怪  阅读(103)  评论(0编辑  收藏  举报