JavaScript数据类型
整理内容来自廖雪峰大大的官方网站:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434499190108eec0bdf14e704a09935cd112e501e31a000
受益匪浅~推荐
JavaScript数据类型
数据类型:Number、Boolean、String、Array、null、undefined、object
一、Number:
JavaScript不区分整数和浮点数,统一用Number表示
例如:
123-整数、
0.234-浮点数、
1.2345e4-科学计数法、
-99-负数、
NaN-无法计算结果时用它表示、
Infinity-无限大......都是合法的Number类型
像0/0结果就是NaN,2/0结果就是Infinity
二、String-字符串
字符串是以单引号或双引号括起来的任意文本,比如’abc’或”abc”
三、Boolean-布尔值
布尔值只有true和false两个值,可以直接用true、false表示布尔值也可以通过计算
&&运算是与运算,只有所有都为true,&&运算结果才是true
||运算是或运算,只要有一个为true,||运算结果就是true
!运算是非运算,会把true变为false,把false变为true
==和===比较运算符,==会自动转换数据类型再比较;===不会自动转换数据类型,如果数据类型不一致则返回false。
由于JavaScript的这个设计缺陷,不要使用==比较好,始终坚持使用===
注:NaN是一个例外,NaN与所有其他值都不相等,包括它自己
我仿佛get到了NaN来自灵魂深处的中二:我不是针对某个人,我是说在座的各位都是辣鸡,包括我自己_(:зゝ∠)_
唯一能判断NaN的方法是通过isNaN()函数
isNaN(NaN)//true
最后要注意浮点数的相等比较:
浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。如果要比较两个浮点数是否相等,只能计算他们之差的绝对值是否小于某个阈值:
四、null和undefined
Null是一个空值,它和0以及””不同,0是一个数值,’’表示长度为0的字符串,而null表示“空”
Undefined表示值未定义。
然而其实区分两者意义并不大。大多数情况下,我们都应该用null。Undefined仅仅在判断函数参数是否传递的情况下有用。
五、数组
JavaScript的数组可以包括任意数据类型,比如[“aaa”,123,null,true,undefined]
另一种创建数组的方法是通过Array()函数来实现
var arr=new Array(1,2,3);
然而出于代码的可读性考虑,建议直接使用[]。
数组元素可以通过索引来访问,注意索引起始值为0
六、对象
JavaScript的对象是一组由键-值组成的无序集合:
var obj={
name:”liona”,
age:18,
city:”yantai”,
hasCar:false
}
JavaScript对象的键都是字符串类型,值可以是任意数据类型。
上面obj对象一共定义了4个键值对,其中每个键又称为对象的属性。例如obj的name属性为”liona”
要获取一个对象的属性可以用对象.属性名的方式例如:obj.name
还可以用obj[“name”]的形式