返回

赋值表达式语法解析,大道至简!

前端

规范中的赋值表达式
赋值表达式是JavaScript中用于给变量或属性赋值的语法结构。规范中对赋值表达式的定义如下:

AssignmentExpression :
  LeftHandSideExpression = AssignmentOperator Expression

其中,LeftHandSideExpression表示要赋值的变量或属性,AssignmentOperator表示赋值运算符,Expression表示要赋予的值。

赋值运算符

规范中定义了以下赋值运算符:

AssignmentOperator :
  = *= /= %= += -= <<= >>= >>>= &= ^= |=

这些运算符可以分为简单赋值运算符和复合赋值运算符。简单赋值运算符只有=一个,而复合赋值运算符则由=和另一个运算符组合而成。

赋值表达式的执行

赋值表达式的执行主要涉及以下几个步骤:

  1. 求解LeftHandSideExpression,得到一个引用值。
  2. 求解Expression,得到一个值。
  3. 根据AssignmentOperator,将Expression的值赋予LeftHandSideExpression引用的变量或属性。

值得注意的是,赋值表达式的执行结果总是Expression的值。

属性获取表达式

在赋值表达式中,LeftHandSideExpression可以是属性获取表达式。属性获取表达式是用来获取对象属性值的语法结构。规范中对属性获取表达式的定义如下:

PropertyAccessExpression :
  PrimaryExpression . IdentifierName

其中,PrimaryExpression表示要获取属性的对象,IdentifierName表示要获取的属性名。

属性获取表达式的执行

属性获取表达式的执行主要涉及以下几个步骤:

  1. 求解PrimaryExpression,得到一个对象值。
  2. 从对象值中获取IdentifierName对应的属性值。

属性获取表达式的执行结果是对象属性的值。

赋值表达式示例

以下是一些赋值表达式的示例:

a = 1;
b += 2;
c *= 3;
d /= 4;
e %= 5;

这些赋值表达式的执行结果分别是:

a = 1
b = 3
c = 6
d = 0.75
e = 1

总结

赋值表达式是JavaScript中用于给变量或属性赋值的语法结构。赋值表达式的执行主要涉及了属性获取表达式和赋值表达式,先去规范里看对于这两种语法及其执行的规定。通过本文的讲解,相信大家对赋值表达式的规范和执行过程有了更深入的了解。