字符串相加的注意点
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.
以上是关于字符串相加的注意点的主要内容,如果未能解决你的问题,请参考以下文章