阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS 赋值运算符

      功能

      赋值运算符(assignment operator)基于右值(right operand)的值,给左值(left operand)赋值。

      演示

      var x = 2;
      var y = 3;
      
      console.log(x);
      // expected output: 2
      
      console.log(x = y + 1); // 3 + 1
      // expected output: 4
      
      console.log(x = x * y); // 4 * 3
      // expected output: 12
      

      概述

      基本的赋值运算符是等号(=),该运算符把它右边的运算值赋给左边。即,x = y 把 y 的值赋给 x。 其他的赋值运算符通常是标准运算符的简写形式,如下面的定义与示例。

      名称简写形式含义
      赋值x = yx = y
      加赋值x += yx = x + y
      减赋值x -= yx = x - y
      乘赋值x *= yx = x * y
      除赋值x /= yx = x / y
      模赋值x %= yx = x % y
      指数赋值x **= yx = x ** y
      左移赋值x «= yx = x « y
      右移赋值x »= yx = x » y
      无符号右移赋值x »>= yx = x »> y
      按位与赋值x &= yx = x & y
      按位异或赋值x ^= yx = x ^ y
      按位或赋值x= y

      解构

      [a, b] = [1, 2]

      {a, b} = {a:1, b:2}

      解构分配使您可以使用类似于数组或对象文字的语法将数组或对象的属性分配给变量。

      示例

      带有赋值运算符的左值(Left operand)

      在某些不常见的情况下,赋值运算符(如 x += y)并不等同于表达式( x = x + y)。

      当一个赋值运算符的左值包含有一个赋值运算符时,左值只会被求值一次。例如:

      a[i++] += 5         // i 执行一次求值
      a[i++] = a[i++] + 5 // i 执行两次求值
      

      规范

      SpecificationStatusComment
      ECMAScript Latest Draft (ECMA-262)
      Assignment operators
      Draft
      ECMAScript 2015 (6th Edition, ECMA-262)
      Assignment operators
      Standard
      ECMAScript 5.1 (ECMA-262)
      Assignment operators
      Standard
      ECMAScript 1st Edition (ECMA-262)
      Assignment operators
      StandardInitial definition.
      目录
      目录