js赋值给div(javascript赋值运算符)

图片授权基于 www.pixabay.com 相关协议

var x = 10;

赋值表达式执行的逻辑是什么?我们都知道基本的赋值运算符是「=」号,该运算符把右边的运算值赋值给左边,这样说对么?也对,但也不对。
我之前一直忽略了「引用」的存在。
可以说 x 在左侧是变量,右侧是数字表达式,可直接把右侧运算值赋值给 x 的引用。
那,赋值操作在语法上是什么样的逻辑?
x = 10;
赋值表达式是一个递归形式,赋值表达式思路很简单:从左到右先计算出ref,然后把最右边的值 value,依次赋给左边的ref,当碰到「=」号左边为undefine时,赋值会忽略。
「ref」指「引用」,「value」指「值」。
所以表达方式应该是这样的:
lRef = rValue

赋值表达式:就是将「=」号右侧操作数的值,赋值给左侧操作数的引用。

那链式赋值表达式的处理逻辑呢?
var x = y = 100;
其实就是相当于:
var x = (y = 100);

推荐阅读

JavaScript 装箱和拆箱

Ajax 如何下载文件

为什么「局部变量」访问速度快


参考:

[1]https://zhuanlan.zhihu.com/p/25428739

[2]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators#Assignment

[3]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side

[4]https://www.ecma-international.org/ecma-262/9.0/#sec-ecmascript-language-expressions

原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34530.html

(0)
小道研究's avatar小道研究
上一篇 2024年4月8日 下午5:44
下一篇 2024年4月8日 下午5:47

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注