当前位置: 首页 > 知识库问答 >
问题:

JavaScript奇怪的行为与运算符优先级!!!1.

晋承运
2023-03-14

你认为这个表达的结果是什么?

var a = 10;
a = a + (a = 5);
console.log(a);

// a = 10?

不!!!是15!

现在让我们看看另一个类似的说法:

var a = 10;
    a = (a = 5) + a;
    console.log(a);
    
    // a = 15? 

还是不,现在是10。为什么呢?我不明白。但是等等,还有两个:

var a = 10;
a = a + a++;
console.log(a);

// a = 21? Haha no! Its 20!

最后一点:

var a = 10;
a = a++ + a;
console.log(a);

// 21))) now my mind is blown away (

那么有人能告诉我们为什么javascript会这样吗?

共有2个答案

戚均
2023-03-14
var a = 10;
a = a + (a = 5);
console.log(a);

// a = 10?
郑旭
2023-03-14

为了更好地理解这一点,让我们考虑另一个变量。

案例1

js prettyprint-override">var a = 10;
a = a + (a = 5); 
console.log(a); // 15

a = 10;
var b = a + (a = 5);
console.log(a); // 5
console.log(b); // 15
 类似资料:
  • 问题内容: 我似乎无法与三元运算符结合使用此代码的第一部分(+ =)。 我认为这段代码的工作方式如下: 但这是不正确的,因为这会导致控制台出现错误。 所以我的问题是我应该如何正确插入此代码? 问题答案: h.className = h.className + (h.className ? ‘ error’ : ‘error’) 您希望操作员为之工作,最好对此有所具体。 当然,不应有任何伤害 ,但这

  • 从高到低顺序如下: ^ not - (一元运算) * / + - ..(字符串连接) < > <= >= ~= == and or

  • 如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符。 下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。 下面这张表(与Python参考手册中的那个

  • 本文向大家介绍浅谈JavaScript中运算符的优先级,包括了浅谈JavaScript中运算符的优先级的使用技巧和注意事项,需要的朋友参考一下 运算符优先级 JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。 下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的

  • 通过前面的学习我们知道运算符有不同的类型,当这些不同类型的运算符出现在同一个表达式中时,就必须遵循运算符的优先级来进行运算,才能保证运算的合理性和结果的正确性、唯一性。运算符的优先级决定了表达式中各个部分执行运算的先后顺序。 下表中详细介绍了 C# 中运算符的优先级顺序: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右   () 圆括号 (表

  • 运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。 优先级由低到高排列 运算符 1 =(赋值运算)、:= 2 II、OR 3 XOR 4 &&、AND 5 NOT 6 BETWEEN、CASE、WHEN、THEN、ELSE 7 =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN 8 | 9 & 10