码迷,mamicode.com
首页 > 其他好文 > 详细

字符串相加的注意点

时间:2017-09-23 21:27:38      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:结果   一个   define   margin   字符串   代码   eof   输出   换问题   

*下面的代码所示:

  • 代码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.

 

字符串相加的注意点

标签:结果   一个   define   margin   字符串   代码   eof   输出   换问题   

原文地址:http://www.cnblogs.com/hollyZ/p/7582415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!