1.原始数据类型
1)数值型:JavaScript中的数值包含整数和浮点数,所有数值都以双精度浮点型来表示。双精度浮点数可以表示-2的53次方到2的53次方的整数,也可以表示为正负1.7976的10的308次方的最大值和正负2.2250乘以10的-308次方的浮点数
十进制数:12,1.2,-23,-1.3e3,12e+20
十六进制:0x0 0x0ABCDEF 0X1a3b4c4d
八进制数:00 0123 02222234
特殊值;Infinity无穷大 当一个数值或数值表达式的值超出了可表示的最大值的范围,将被赋值为Infinity。可以有无穷大Infinity,也可以有无穷小-Infinity
NaN:NaN代表Not a Number。当一个Undefined表达式的结果为数值型数据时,该数值型就是NaN值。
NaN是唯一一个不能和自身做比较的值 可以通过isNaN()检测是否为NaN
2)字符串型
定界符:""|"
转义符:
\n 回车换行 \r 换行 \t 水平制表符
\" -> " \' -> '
布尔类型:true false
2.复合数数据类型
对象(object)数值(array)函数(function)
3.特殊数据类型
无定义数据类型undefined
undefined用来表示不存在的值或者尚未赋值的变量。对一个变量只声明不赋值或者赋予一个不存在的属性值,都会使这个变量的值为Undefined
空值null:
null表示空值,表示什么都没有,相当于一个占位符。
null和undefined的区别就是undefined表示变量未被赋值,而null表示变量被赋予了一个空值。
4.变量
1)声明变量
通过var关键字声明变量,可以声明变量的同时给变量赋值,可以一次声明一个变量也可以一次声明多个变量
如果只声明变量未对其赋值,值默认为undefined 如果变量重名会被覆盖
注意:1‘变量严格区分大小写 2‘变量名称不要包含特殊字符3‘变量名称最好遵循驼峰标记或者下划线法4’变量名称最好含义明确
2)变量在内存中的存储与释放
收集方式 收集内容 回收算法
5.类型转换
1)隐式转换
1‘转换成不二类型
undefined->false
null->false
数值型0货0.0货NaN->false
字符串长度0->false
其他对象->false
2'转换为数值型数据
undefined->NaN
null->0
true->1|false->0
内容为数字->数字,否则转换成NaN
其他对象->NaN
3'转换为字符串型数据
undefined->"undefined"
null -> "NaN"
undefined->"true" false->"false"
数值型->NaN,0或者与数值对应的字符串
其他对象->如果存在着歌对象则转换为toString()方法的值,转换则转换为Undefined
2.显示转换
1)转换成数值
Number函数强制转换成数值
数值->转换成原来的值
字符串->如果可以解析为数值,则转换成数值;否则转换成NaN或者0
true>1,false->0
undefined-> NaN
null->NaN
转换成整形型
praaseInt()
转换成浮点型
parseFloat()
注意:Number函数将字符串转换为数值比praseInt函数严格很多,基本上只有一个字符无法转换成数值,整个字符串就会被转换成NaN
2.转换成字符串
通过String函数转换成字符串
数值->数值本身
字符串->字符串本身
true->"true",false->"false"
undefined->"undefined"
null->"nul"
toString() 转换成字符串型
3.转换成布尔类型
通过Boolean函数强制转换成布尔值
0,-0->false
Nan->false
空字符串->false
undefined-false
null->false