您的位置:首页 > Web前端 > JavaScript

JavaScript深入浅出——数据类型(一)

2016-09-08 21:12 253 查看
一、六种数据类型

五种原始类型:number,string,boolean,null,undefined

一种对象类型:object,包含Function,Array,Date....

二、隐式转换

1.+和-

"37"-7    //30

"37"+7    //377

减号表示减法运算,加号表示字符串拼接

巧用+/-规则转换类型:num-0变数字,num+0变字符串

2.a==b

"1.23"==1.23  //当等号一边是字符串,一边是数字,会把字符串转为数字再进行比较

0==false

null==undefined

new Object()==new Object()

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

类型相同,同===
类型不同,尝试类型转换和比较:
null==undefined相等
number==string  //字符串转数字
boolean==?        //先将布尔值转数字
object==number/string   //将对象转为基本类型

3.a===b,严格等于

类型不同,返回false

类型相同:大小长度或其他进行比较

特殊:NaN≠NaN

           new Object≠new Object(对象的比较是用引用去比较而不是值进行比较)

三、包装对象
基本数据类型是没有属性和方法的,但是JS会智能将string,number,boolean类型暂时转换包装成对象,使用过后自动删除,所以var str="string";str.length;也是对的,str.t=10;可以显示str.t为10,但是再次输出str就会显示为undefined,因为基本数据类型包装为对象是暂时的

四、类型检测
1.type of适合基本类型及function检测,但不适合null,遇到会失效。typeof null===object

2.Class,通过{}.toString拿到,适合内置对象和基元类型,遇到null和undefined失效;

3.instanceof适合自定义对象,也可以用来检测原生对象,在不同iframe和widow间检测时失效

注意:不同window或iframe之间对象类型检测不能使用instanceof

4.Object.prototype.toString.apply([]);

Object.prototype.toString.apply(function(){});

Object.prototype.toString.apply(null); //在IE7、IE8会返回Object类型

Object.prototype.toString.apply(undefined);

5.constructor继承自原型,指向构造对象的构造器(构造函数),可被改写

6.duck type 鸭子类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: