字符串相加的注意点

Posted 人生舞台,最佳期待

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串相加的注意点相关的知识,希望对你有一定的参考价值。

*下面的代码所示:

  • 代码1: 数字字符串参与运算的情况1
1 console.log(1 + "2" + "2");

很明显输出的是122,并且:

console.log(typeof (1 + "2" + "2"));

   输出的是string类型.上面的结果是毫无疑问的.

 

  • 代码2: 数字字符串参与运算的情况2
console.log(1 + +"2" + "2");
console.log(typeof (1 + +"2" + "2"));//string

  代码2中的第一个输出的是32, 因为+"2"会默认把字符串2转成number类型的2,所以再跟后面的字符串相加等到最终的32,并且,输出的仍然是字符串类型.

 

  • 代码3: 字符串参与运算
1 console.log( "A" - "B" + "2");//NaN2
2 console.log( "A" - "B" + 2);//NaN

  第一行输出的是NaN2,是因为 "A" - "B"输出的是NaN, 当NaN与字符相加的是,NaN会默认转成字符串类型,即"NaN",所以最终结果是NaN2

  第二行输出的是NaN,毫无疑问,只是为了跟第一行做对比.

 

  • 代码4: undefined 和 null 参与运算
1 console.log(undefined + 2);
2 console.log(null + 2);

  这里也涉及到了默认转换问题, undefined和null与数字相加会先默认转成数字类型,然后再进行相加.此时,我们需要看一个代码:

1 console.log(Number(undefined));//NaN
2 console.log(Number(null));//0

  结果就出来了,要记住,undefined默认转成数字类型是NaN,而null默认转成数字类型是0,这也是undefined和null的其中一个区别. 

  所以,综上所述,代码4分别输出的是NaN 和 2.

 

以上是关于字符串相加的注意点的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode415 字符串相加

php 在终端中模拟一点加载字符的片段

python如何在字符串中提取浮点数字并相加

DFS——jzyzoj1187:虫食算

字符串经典题之大数相加

Java jdk对字符串相加的优化