JavaScript数据类型分为两种:原始类型和对象类型,原始类型有:number(数字)、string(文本)、boolean(布尔值)、null(空)、undefined(未定义);对象类型有:Array(数组)、Function(函数)、Date(时间)、RegEpx(正则表达式)、包装对象、其他内置对象。
typeof 操作符用于检测给定变量的数据类型。
var message = "some string"; alert(typeof message); //"string" alert(typeof 95); //"number" var f=function(){alert(message)} alert(typeof(f)); //"function"
包装对象包括:Boolean(与布尔值对应的引用类型)、Number(与数字值对应的引用类型)、String(与字符串对应的引用类型). 包装对象就是将原始类型(null、undefined除外)包装秤对象以继承对象方法。
其他内置对象:Global对象、Math对象
原始类型的值是不可变的,原始类型的比较是值得比较;对象的比较不是值的比较,即使两个对象有相同的属性相同的值,也是不相等的。
数据转换
对象转换为原始类型
对象转换为布尔值
所有的对象包括数组和函数都转换为true
new Boolean(false) => true
对象转换为字符串
如果对象就有toString()方法,则调用toString()方法,否则调用valueOf()方法,在否则类型错误异常。
对象转换为数字
如果对象就有valueOf()方法,则调用valueOf()方法,否则调用toString()方法,在否则类型错误异常。