这条javascript语句的运算顺序是怎样的?

var a = 1;
var b = ++a * (++a + (a + 3));
console.log(b); //18
求解释这语句的运算顺序。不是从括号里的括号开始算吗?

本题目只有一个考点:表达式中的++x和x++是如何处理的?
记忆的方法是:
凡表达式中的++x,都是先执行x=x+1,然后把x带入表达式进行计算;
凡表达式中的x++,都是先把x带入表达式进行计算,最后在执行x=x+1;

本题目例子很简单,只有++x,因此语句:
var b = ++a * (++a + (a + 3));
相当于如下三个语句:
a=a+1
a=a+1
var b = a * (a + (a + 3));

现在知道怎么算了吧,按照上面的规则计算的结果和程序执行结果就一致了。
温馨提示:内容为网友见解,仅供参考
无其他回答

javascript 字符串比较
JavaScript中的字符串比较需要明确运算符的优先级。首先,了解运算符的优先级是解决问题的基础。在JavaScript中,运算符的优先级按照以下顺序排列:非(!)>算数(+,-,*,\/)>关系(==,!=,>,=,<=)>逻辑与(&&)>逻辑或(||)>条件(if...else)>赋值(=)。在进行字符串比较时,运算...

JavaScript中的加一运算
这个就是你在学习程序设计的时候的基础没有打好造成的这个问题的啦,后置的++(x++)是在运算的本身是不会自增一的,只有到它的下一次的运用的时候才会增一,你不信的话,你先x++,后面再加一句输出的语句试试看,就会增一了,而前置++(++x)就是直接加一了,这就是前置和后置++的区别所在!

JavaScript编程 如何跳转到指定代码行?
在JavaScript中,通常无法直接跳过中间的代码行。一般情况下,代码是按照从上到下的顺序依次执行的。然而,你可以使用条件语句(如if语句或switch语句)来控制代码的执行流程,从而实现跳过某些代码行的效果。具体来说,在代码1执行后,你可以添加一个条件判断,如果满足某个条件,直接执行代码4,否则继续执行...

JavaScript中的加一运算
{}是执行语句多于1条时用的~执行的是括号内所有语句 没有{}则是执行if后的第一条语句~例子:if (x==1)if (z==2)y=3 else y=4 和 if (x==1){ if (z==2)y=3 else y=4 } 效果是一样的~而 if (x==1){ if (z==2)y=3 } else y=4 和上面的就区别开了 ...

如何确保JavaScript的执行顺序
1.1 按HTML文档流顺序执行JavaScript代码 首先,读者应该清楚,HTML文档在浏览器中的解析过程是这样的:浏览器是按着文档流从上到下逐步解析页面结构和信息的。JavaScript代码作为嵌入的脚本应该也算做HTML文档的组成部分,所以JavaScript代码在装载时的执行顺序也是根据脚本标签的出现顺序来确定的。例如,浏览...

这个javascript语句啥含义?
i++就是没一个循环i+1,i++的意思就是i=i+1,是一种简写 循环通常用来做一些能够确定的但是重复的事情 比如说有20个人,要他们喊到 从第一个人开始喊到,一直到第二十个,就可以用到了 for循环的语句是这样的 for(计数器;条件;计数器加1)你也可以不这样写,而把这些写到for里面,比如说 var i=...

javascriptfor循环
for循环的基本结构 JavaScript中的for循环由四个部分组成:初始化表达式、循环条件、迭代表达式和循环体语句。初始化表达式:在循环开始之前执行,通常用于初始化循环控制变量。循环条件:在每次循环迭代开始时进行检查,如果条件为真,则执行循环体语句;如果条件为假,则停止循环。迭代表达式:在每次循环体执行...

JavaScript三元运算
JavaScript三元运算符是一种简洁的条件语句,通过三个部分:条件表达式、问号(?)和冒号(:)组成。例如:条件表达式 ? 值1 : 值2 若条件表达式为真,返回值1;假则返回值2。实际应用中,这可简化判断逻辑。如:javascript let age = 18;let message = (age >= 18) ? "成年人" : "未成年人...

javascript 里 this.checked = !this.checked;怎么解释?
总是给当前控件 赋与他当前状态相反的值,比如:如果 checked = true 则 checked = false 赋值总是与其状态相反的。我是这样理解的。

js for in是怎么遍历的
JavaScript中的for in语句用于遍历对象的可枚举属性。遍历的顺序是随机的,而且它不保证属性被按照创建时候的顺序返回。避免for in,除非做这件事情需要遍历一个对象所有的属性。下面是for in语句的语法:```for (variable in object) { \/\/ code to be executed } ```参数说明:- variable:必需。

相似回答