ECMAScript的变量是松散类型的,所谓松散类型就是每个变量可以用来保存任何类型的数据,可以理解成每个变量仅仅是一个占位符。
ECMAScript有5种基本数据类型undefined null boolean string number 一种复杂数据类型object。object本质由一组无序的键值对组成,ECMAScript不支持任何创建自定义类型的机制,所以所有值都是这6种数据类型之一。(ES6新增Symbol类型)
typeof操作符
检测变量的数据类型
typeof 'this is string' // string typeof 12 // number typeof x // undefined typeof true // boolean typeof NaN // numberUndefined类型
//在使用var 声明变量但未对其初始化时,这个变量值就是undefined var x; alert(x == undefined) // true //显式声明 var x = undefined; alert(x == undefined) // trueNull类型
null值表示一个空对象指针
undefined值是派生自null值的,所以
null == undefined // true
Boolean类型
该类型两个值:true和false
在ECMAScript中true和false是区分大小写的,也就是说True和False以及其他混合大小写形式都不是Boolean值
可以调用转型函数Boolean()
var x = “string” var booleanX = Boolean(x); // true
Number类型
var int1 = 55; //整数 var int2 = 076 ;//八进制(严格模式下无效) var int3 = 0xA; // 十六进制
NaN(Not a Number)特殊的数值
数值转换 Number() parseInt() ParseFloat()
String类型
字符串由双引号(”)单引号(‘)表示,有效写法: var s1 = “string”; var s2 = ‘string’;
ECMAScript中的字符串是不变的,也就是说字符串一旦创建,它们的值就是不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值得字符串填充该变量
转换为字符串 toString()
Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
object{Function Array Date}
var obj = new object();
Symbol类型
ES6出现的第七种类型 typeof Symbol() === ‘symbol’ 每次调用Symbol()返回唯一symbol 使用Symbol来避免代码冲突
