JS基础篇--类型转换

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去求数据类型,可能是类型的错误,也可能不是。再找错误的时候,都需要我们去自行测试一下。

你可能感兴趣的:(JS基础篇--类型转换)