js操作符“+”前后的类型转换

先来思考一下如下代码输出什么

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

console.log(1+ +"2"+"2");  //注意加号与加号间是一个空格

console.log("A"-"B"+"2");

console.log("A"-"B"+2);

结果分别为:

"142","122","NaN2","NaN"

在js中,操作符+的两个操作数中若是有一个是字符串,则会将另一个操作数也变为字符串,所以第一句输出142;

而空格加一个“+”则是一个一元操作符,表示正2,因此会将它自动转换为Number,第二句输出32;

字符串之间执行减操作,会先将操作数转换为Number,Number(string)会返回NaN,所以第三句会输出NaN2;

NaN与任何数字进行加减操作都会返回NaN,因此第四句返回NaN

 

posted @ 2018-09-05 19:56  某个润滑君  阅读(473)  评论(0编辑  收藏  举报