1、JS的数据类型
2016-03-06 11:06
519 查看
一、分类:JS有6种数据类型:
1.string
2.undefined
3.number
4.null
5.boolean
6.object(包含函数、数组、日期等)
二、隐式转换
1.+和-
2.a == b
若用 a === b会先比较类型,类型不同,返回false
三、包装对象object
首先,有一个基本类型str和一个对象类型strObj,尝试进行赋值和获取
接下来,尝试查看str的长度,并给str加一个方法t,获取t
可以看到,长度可以获取,并且str.t = 10赋值成功,但是再获取str.t的时候却得到了undefined,无法获取。
——这是因为,当把一个基本类型尝试转化为对象来时,浏览器会将其转换成一个相对应的临时的包装类型对象,当完成这个访问后,临时对象会被销毁掉,所以a.t是不存在的。
四、类型检测
1.typeof sth, 返回数据类型,适合基本类型及function检测,遇到null失效。例:
2.instanceof 基于原型链判断数据类型,操作类型是对象,如果是string/int等类型会返回false。适合自定义对象,也可以用来检测原生对象,在不同窗体间失效。
使用方法:sth instranceof 数据类型,返回true或者false,例:
*instanceof 是判断对象的原型,比如一个学生对象的父类是人,判断 student instanceof person ,因为学生对象的原型就是人,返回true
不同window或iframe间的对象类型检测不能使用!
3.Object.prototype.toString.apply(数据),适合内置对象和基元类型
例:
*注:IE6、7、8判断null是返回object
4、constructor 和 ducktype,了解
1.string
2.undefined
3.number
4.null
5.boolean
6.object(包含函数、数组、日期等)
二、隐式转换
1.+和-
var x = "37" - 7 //30 运算 var y = "37" + 7 //377 字符串拼接
2.a == b
"1.23" == 1.23; //会尝试将字符串转为数字比较 0 == false; //会将false转为数字0进行比较 null == undefined; new Object() == new Object(); [1,2] == [1,2]; object == number|string //尝试对象转换为基本类型,如: new String("hi")=="hi" //true
若用 a === b会先比较类型,类型不同,返回false
三、包装对象object
首先,有一个基本类型str和一个对象类型strObj,尝试进行赋值和获取
接下来,尝试查看str的长度,并给str加一个方法t,获取t
可以看到,长度可以获取,并且str.t = 10赋值成功,但是再获取str.t的时候却得到了undefined,无法获取。
——这是因为,当把一个基本类型尝试转化为对象来时,浏览器会将其转换成一个相对应的临时的包装类型对象,当完成这个访问后,临时对象会被销毁掉,所以a.t是不存在的。
四、类型检测
1.typeof sth, 返回数据类型,适合基本类型及function检测,遇到null失效。例:
2.instanceof 基于原型链判断数据类型,操作类型是对象,如果是string/int等类型会返回false。适合自定义对象,也可以用来检测原生对象,在不同窗体间失效。
使用方法:sth instranceof 数据类型,返回true或者false,例:
[1,2] instanceof Array //返回true new Object() instanceof Array //返回false
*instanceof 是判断对象的原型,比如一个学生对象的父类是人,判断 student instanceof person ,因为学生对象的原型就是人,返回true
不同window或iframe间的对象类型检测不能使用!
3.Object.prototype.toString.apply(数据),适合内置对象和基元类型
例:
*注:IE6、7、8判断null是返回object
4、constructor 和 ducktype,了解
相关文章推荐
- JavaScript原生对象属性和方法详解——Array对象
- JSON
- js table td读取片段
- javascript实例学习之四——javascript分页
- Ajax
- js特效-开关灯泡
- javascript 中的console.log
- ExtJs学习笔记一
- jsr303 参考表
- JavaScript中获取纯正的undefined的方法
- Web 开发工具类(3): JsonUtils
- JS面向对象编程详解
- html js mysq 命名规范
- javascript--判空判等
- 封装getByClass(JS获取class的方法封装为一个函数)
- JS 取消冒泡事件 兼容火狐IE
- javascript处理事件的一些兼容写法
- js 获取url的get传值函数
- 《Pro JavaScript Techniques》中的一些函数
- js学习笔记(新手)