1、变量:
是在内存中的数据存储空间,随着运算的进行,存储可进行变化;其中变量由三要素:变量名,变量值,数据类型。
变量的数据类型:
(1)基本类型
数字Number
字符串String
布尔Boolean
未定义Undefined
空值Null
符号Symbol(ES6中新增加的)
(2)引用类型
对象Object
2、数据类型的转化:
在JS中,大多可进行自动类型转化,有少部分的内容需要我们进行强制转化,也就是手动或显示类型转化。
显示转化中有三个类型:
(1)parseInt()
(2)parseFloat()
(3)Number
其中parseInt()和parseFloat()在转换数据类型时,将字符串转化成数字时具有一定的容错能力,而Number将字符串转化成数字时,没有容错能力。
Eg:
在以上例子中大家可以看到parseInt()和parseFloat()在转换数据类型时,只要不是第一个为字母,均可进行转换,遇到字母时,在停止转换;当第一个为字母时,则转换为NAN(not a number),NAN是Number类型。
3、其他类型转换为数字类型
(1)String -- Number:
兼容时(字符串中只有数字):数字;0
不兼容(字符串中包含字母):NAN
(2)空字符串(“ “) -- Number:0
(3)Boolean -- Number:
True:1
False:0
(4)Undefined -- Number:NAN
(5)Null -- Number:0
(6)Symbol -- Number:不能进行转换,会进行报错
注意:在进行自行操作时,显示的时NAN数字类型,而并非不能转换,这点存在疑惑。
(7)Object -- Number:NAN
4、其他类型转换为布尔类型
(1)Number -- Boolean:
0 -- false
NAN -- false
非0 -- true
Infinity -- true
(2)String -- Boolean:
String -- true
空字符串-- false
注意:空字符串和有空格的字符串是有区别的
(3)Undefined -- Boolean:false
(4)Null -- Boolean:false
(5)Symbol -- Boolean:true
(6)Object -- Boolean:true
5、求表达式的数据类型Typeof
在不知道数据类型的情况下,可以使用该函数求数据类型
总结:
总的来说,在大多数情况下,JS引擎都是可以进行隐式转换的,只有在少数情况下需要我们用Number进行强制转换。当浏览器解析失败时,应该适当的使用typeof去求数据类型,可能是类型的错误,也可能不是。再找错误的时候,都需要我们去自行测试一下。