📒关于加号运算及字符串拼接

432 阅读1分钟

加减乘除四则运算中除+外其他都是数学运算。

谨记:+一旦遇到字符串会立马进行字符串拼接。 面试题:

    let a = 10+null+true+[]+undefined+'珠峰'+null+[]+10+false;
    console.log(a)  // '11undefined珠峰null10false'

遇到第一个[]的时候11+[] 先把[]转换成数字,引用类型转数字是先转换成字符串: [].toString() ==> '',再转为数字: Number('') ==> 0,但是+遇到字符串就立马变成字符串拼接,后面的转换就不执行了,所以11+[] ==> 11+'',结果为'11'

相加的过程两边类型不同会先进行类型转换:

  • 其中一边包含有字符串会先把另一边转换成字符串再拼接;
  • 两边都没有字符串就是数学运算,所以会先转换成数字再运算。

注意: 这两种情况都适用 +一旦遇到字符串会立马进行字符串拼接

image.png