JS数据类型转换规则

作者: zhaoolee | 来源:发表于2018-03-11 18:16 被阅读119次

    JS数据类型

    基础类型

    • String
    • Boolean
    • Number
    • Symbol
    • Undefine
    • Null(typeof(null) === "object")

    复合类型: 对象

    • Object(Array, Json)

    显示类型转换

    Number的原始类型转换规则

    • 数值转换后还是数值
    • 字符串如果可以解析为数值则为数值, 空字符串为0, 无法解析的字符串为NaN
    • 布尔转数值, true转为1, false转为0
    • null转换为0
    原始类型转换Number

    Number的对象类型转换规则

    传入实例M, 先调用M的valueOf(), 如果返回值V为基本数据类型, 则直接使用Number(V), 求最终返回值
    如果T不属于基本数据类型, 则调用M的toString(), 如果返回值S为基本数据类型, 则直接使用Number(S),求最后的结果, 如果S不属于基本数据类型, 则直接返回NaN

    对象类型转换1
    对象类型转换2

    String的原始类型转换规则

    • 数值(Number)转为相应的字符串
    • 字符串(String) 转换后还是字符串
    • 布尔值(Boolean)转换规则: true => 'true', false=> 'false'
    • undefine 转换为"undefine"
    • null 转换为'null'
    String原始类型转换

    String 的对象类型转换规则

    与Number的对象转换规则类似, 区别是: 先调用对象的toString(), 然后再调用valueOf()
    其实正常情况下, 对象调用自身的toString()后, 对象就可以转换为string基本类型, valueOf() 没有机会被调用, 但万事有个例, 如果我们重新定义了对象的toString()方法,使其返回非基本类型的值, 那样就有机会调用对象的valueOf()方法了

    String对象类型转换规则

    Boolean的原始类型转换 和 对象类型转换

    undefined,null,NaN,'',-0,+0皆为false, 其余为true

    隐式类型转换

    四则运算+, -, *, /

    隐式类型转换之四则运算

    判断语句 if()

    Native调用 console.log(), alert()

    相关文章

      网友评论

        本文标题:JS数据类型转换规则

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