" - " javascript中的运算符?它是如何工作的?

时间:2015-12-26 05:01:59

标签: javascript

var x = "5";
var y = 2;
var z = 5-("1"+2)+"2"+"1";
console.log(z) // -721

这怎么可能?请在javascript中解释 - 运算符

3 个答案:

答案 0 :(得分:1)

("1"+2)通过连接为您提供"12"

5-"12"为您提供-7,因为正如Jonathan指出的那样,-需要数字并根据需要进行投射。

然后你连接-7+"2"+"1"给你字符串"-721"

这实际上只是一个操作顺序问题,在7-“12”的算术之后发生连接,除了在括号中首先使“12”成为问题。

一切都按预期工作。

答案 1 :(得分:0)

让我们打开var var z = 5-("1"+2)+"2"+"1";

  1. 引号中的元素被读取为字符串,因此成为连接的连接。因为("1" + 2)在括号中,所以它将具有优先权。 ("1" + 2) = 12
  2. 现在你有5-12+"2"+"1";。我们将其分为两部分

    5 - 12 AND "2" + "1"
    
    a. 5 - 12 = -7
    b. "2" + "1" = "21"
    

    现在你有-7 + "21"。由于一个是String,因此它是一个串联,导致"-721"

答案 2 :(得分:0)

我建议你阅读

有许多资源可以解答您的所有问题。