强制类型转换

强制类型转换

指将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他的数据类型,转换为
string Number Boolean

将其他的数据类型转换为String

方式一:
调用被转换数据类型的toString()方法
该方法不会影响到原变量,它会将转换的结果返回
但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错。

方式二:
调用String()函数,并将被转换的数据作为参数传递给函数
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将null 直接转换为"null"
将undefined直接转换为"undefined"

将其他的数据类型转换为Number

转换方式一:
使用Number()函数

  • 字符串 --> 数字
    1.如果是纯数字的字符串,则直接将其转换为数字
    2.如果字符串中有非数字的内容,则转换为NaN
    3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0

  • 布尔 --> 数字

    • true 转成 1
    • false 转成 0
  • Null -->数字 0

  • undefined --> 数字NaN

转换方式二:
这种方式专门用来对付字符串

parseInt()把一个字符串转换为一个整数,可以将一个字符串中的有效的整数内容去出来,然后转换为Number
parseFloat()把一个字符串转换为一个浮点数;作用和parseInt()类似,不同的是它可以获得有效的小数

如果对非String使用parseInt()或parseFloat()
它会先将其转换为String

其它进制数

在js中,如果需要表示16进制的数字,则需要以0x开头
如果需要表示8进制的数字,则需要以0开头

像"080"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
可以在parseInt()中传递一个第二个参数,来指定数字的进制
所以开发中尽量避免这种情况

将其他的数据类型转换为Boolean

使用Boolean()函数

  • 数字--->布尔
    • 除了0和NaN,其余的都是true
  • 字符串--->布尔
    • 除了空串,其余的都是true
  • null、 undefined --->布尔
    • 都是false
  • 对象--->布尔
    • 都是true

方法二(隐式类型转换):
为任意的数据类型做两次非运算,即可将其转换为布尔值

posted @ 2021-12-24 19:35  苏槿年  阅读(293)  评论(0编辑  收藏  举报