美文网首页
js显示隐式转换

js显示隐式转换

作者: Aiq127 | 来源:发表于2020-08-06 21:53 被阅读0次
    显示转换

    在 JS 中类型转换只有三种情况,分别是:
    1、转换为布尔值(调用Boolean()方法)
    2、转换为数字(调用Number()、parseInt()和parseFloat()方法)
    3、转换为字符串(调用.toString()或者String()方法)


    64.jpg

    (undefined转数字为NaN)
    使用Boolean(value)方法可以强制转换任意值为boolean类型,除了以下六个值,其他都是自动转为true:
    undefined
    null
    -0
    +0
    NaN
    ‘’(空字符串)
    Boolean(undefined) // false
    Boolean(null) // false
    Boolean(0) // false
    Boolean(NaN) // false
    Boolean('') // false

    隐式转换
    33.png

    当两个不同类型的数据进行抽象比较(==)时,JS会将它们先转换成统一数据类型,低层级的数据类型向高层级的数据类型转换,直到“==”左右两边数据类型相同,然后比较数据的值是否相同。

    举个例子:
    1、数字遇上字符串:字符串→数字
    1 == '1' //true
    2、数字遇上布尔:布尔→数字
    0 == false //true
    3、数字遇上对象:对象→数字
    0 == [0] //true
    4、字符串遇上布尔:字符串→数字,布尔→数字
    "" === false //true
    "0" === false //true "0" → 0,false → 0
    5、字符串遇上对象:对象→字符串
    [1, 2, 3] == '1,2,3' //true
    6、布尔遇上对象:
    [0] == false //true [0] → "0" → 0, false → 0
    [] == false //true [] → "0" → 0, false → 0
    ![] == false //true
    ![] == false //false

    undefined == false //false
    null == false //false
    undefined == null //true
    注意:
    1、![] == false为true是因为 ! 会将 [] 直接转换成Boolean,在JS中,将其他数据类型转换成Boolean时,只有空字符串("")、0、null、undefined、NaN会转换成false,其他数据都会转换成true,所以空数组([])会被转换成true,![]为false,!![]为true
    2、undefined和null与任何有意义的值比较返回的都是false,但是null与undefined之间互相比较返回的是true。

    相关文章

      网友评论

          本文标题:js显示隐式转换

          本文链接:https://www.haomeiwen.com/subject/ukntdktx.html