Javascript强制概念需要澄清

Cha*_*har 2 javascript jquery

这里的问题是当我尝试添加"2"+"2"-"2"浏览器控制台时,我得到结果为20."2"+"2"返回"22"(字符串),但"2"+"2"-"2"返回20(数字).有人能解释为什么会这样吗?如何将字符串转换为数字?

Viv*_*shi 8

在javascript中:

+ 运算符可以追加字符串或执行数字运算

但是 - */只能在数值上执行

var a = "2";
var b = "2";
var c = "2";

var temp1 = a+b;
console.log("After + --> ",typeof(temp1) , temp1 );

var temp2 = temp1-c;
console.log("After - --> ",typeof(temp2) , temp2 );

var temp3 = temp1*c;
console.log("After * --> ",typeof(temp3) , temp3 );

var temp4 = temp1/c;
console.log("After / --> ",typeof(temp4) , temp4 );
Run Code Online (Sandbox Code Playgroud)

以下是关于此的精彩文章:阅读更多(+)/阅读更多( - )

操作数+操作数=结果

  1. 如果至少有一个操作数是一个对象,它将被转换为原始值(字符串,数字或布尔值);
  2. 转换后,如果至少有一个操作数是字符串类型,则第二个操作数转换为字符串并执行连接;
  3. 在其他情况下,两个操作数都被转换为数字并执行算术加法.

如果两个操作数都是基本类型,则运算符检查是否至少有一个是字符串并执行连接.在其他情况下,它只是将所有内容转换为数字和总和.

对于所有其他运营商:Do Read