JS中的三种类型转换

134 阅读1分钟

JS中只有三种类型转换,分别是:转换成数字,转换成字符串,转换成布尔值。

转换成数字

基本类型的值转换底层是通过调用Number()方法来转换的;引用类型的值是先调用toString()方法,先转换成字符串,然后再调用Number()几种特殊情况

  • 字符串转数字:空串或者空格为0,数字字符串为数字;
  • null转换为数字是0
  • 数组转换成数字:空数组是0,一个子项且值为数字或数字字符串的转换结果是对应数字;
  • 布尔类型true是1,false是0
  • Symbel类型是直接报错。

除了上面几种特殊情况,其他转换结果都是NaN。undefined 转换结果也是NaN。除了数组的几种特殊情况,其他引用类型转换都是NaN。因为第一步先转换成字符串的结果都是'[object Object]'

image.png

转换成字符串

  • 基本类型转换结果都是对应值外面包一个'';
  • 引用类型
    • 数组直接去掉[];
    • 对象则都是转换成'[object Object]'

转换成布尔值

除了0''nullundefinedNaN这五个值转换结果是false,其他结果都是true