前言
强制类型转换:将一个数据类型强制转换为其他的数据类型。
类型转换主要指,将其他的数据类型,转换为:String、Number、Boolean。你会把某个数据类型转换成 null 或者 undefined 吗?不会,因为这样做,没有意义。
其他的简单类型 –> String
方法一:变量+”” 或者 变量+”abc”
举例如下:
1 | vat a = 123; // Number 类型 |
上面的例子中,打印的结果,都是字符串类型的数据。
方法二:调用toString()方法
举例如下:
1 | 变量.toString() |
【重要】该方法不会影响到原变量,它会将转换的结果返回。当然我们还可以直接写成a = a.toString(),这样的话,就是直接修改原变量。
注意:null和undefined这两个值没有toString()方法,所以它们不能用方法二。如果调用,会报错。
另外,Number类型的变量,在调用toString()时,可以在方法中传递一个整数作为参数。此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制。例如:
1 | var a = 255; |
方法三:使用String()函数
格式如下:
1 | String(变量) |
使用String()函数做强制类型转换时:
对于Number和Boolean而言,实际上就是调用toString()方法。
但是对于null和undefined,就不会调用toString()方法。它会将 null 直接转换为 “null”。将 undefined 直接转换为 “undefined”。
prompt():用户的输入
我们在JS基础的第一篇里,就讲过,prompt()就是专门用来弹出能够让用户输入的对话框。重要的是:用户不管输入什么,都是字符串。
其他的数据类型 –> Number
方式一:使用Number()函数
情况一:字符串 –> 数字
1.如果字符串中是纯数字,则直接将其转换为数字。
2.如果字符串中有非数字的内容,则转换为NaN。(此处可以看到Number()函数的局限性)
3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。
情况二:布尔 –> 数字
true 转成 1
false 转成 0
情况三:null –> 数字
- 结果为:0
情况四:undefined –> 数字
- 结果为:NaN