隐式转换和强制转换

隐式转换:
  场景——数学运算符:+ - * /
  规则:
    +:当任意一边出现字符时,“+”会把数值类型转换成字符类型,此时 + 代表拼接
    -、*、/:出现纯数字字符时,会转换成数值类型处理,出现非数字类型时,会出现“NaN”

  场景——关系运算符:> < >= <= != == ===
  规则:
    当只有一边为纯数字字符时,会转换成数值比较
    当两边全部是数字字符时,会按照字符串对比的规则对比(逐位比较,得到结果,停止比较)
    ==:若有字符类型会转换成数值类型,比较的是值
    ===:若有字符类型不会转换,比较的是值和数据类型,全等

  场景——if语句:
  规则:

    0、“”、null、undefined、NaN在if的()内会转换为false


强制类型转换:
  字符转数值:
    parseInt():从左向右依次转换,能转则转,不能转停止;如果第一位就不能转,直接NaN;不识别小数点。
    parseFloat():等同于parseInt,同时可以识别小数点
    Math.round():严格转换,不允许出现任何非数字的字符,否则NaN;取最接近的整数
    Number():严格转换,不允许出现任何非数字的字符,否则NaN;直接转换
    -、*、/:利用数学运算符的隐式转换,把数值转换成字符

  数值转字符:
    toString():直接将数值转换成字符
    toFixed():直接转换,参数为保留的小数位数
    +:利用数学运算符的隐式转换,+连接一个空字符
其他类型的转换:

  用+、-、*、/ 对true、false、null进行转换可得,true为1,false为0,null为0

猜你喜欢

转载自www.cnblogs.com/maozo/p/11737154.html