.. _wxs-operator: :wxfrwk:`运算符 ` ============================================= 基本运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 加法运算 console.log(30 === a + b); // 减法运算 console.log(-10 === a - b); // 乘法运算 console.log(200 === a * b); // 除法运算 console.log(0.5 === a / b); // 取余运算 console.log(10 === a % b); // 加法运算(+)也可以用作字符串的拼接。 var a = '.w' , b = 'xs'; // 字符串拼接 console.log('.wxs' === a + b); 一元运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 自增运算 console.log(10 === a++); console.log(12 === ++a); // 自减运算 console.log(12 === a--); console.log(10 === --a); // 正值运算 console.log(10 === +a); // 负值运算 console.log(0-10 === -a); // 否运算 console.log(-11 === ~a); // 取反运算 console.log(false === !a); // delete 运算 console.log(true === delete a.fake); // void 运算 console.log(undefined === void a); // typeof 运算 console.log("number" === typeof a); 位运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 左移运算 console.log(80 === (a << 3)); // 无符号右移运算 console.log(2 === (a >> 2)); // 带符号右移运算 console.log(2 === (a >>> 2)); // 与运算 console.log(2 === (a & 3)); // 异或运算 console.log(9 === (a ^ 3)); // 或运算 console.log(11 === (a | 3)); 比较运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 小于 console.log(true === (a < b)); // 大于 console.log(false === (a > b)); // 小于等于 console.log(true === (a <= b)); // 大于等于 console.log(false === (a >= b)); 等值运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 等号 console.log(false === (a == b)); // 非等号 console.log(true === (a != b)); // 全等号 console.log(false === (a === b)); // 非全等号 console.log(true === (a !== b)); 赋值运算符 ------------------- 示例代码: .. code:: js var a = 10; a = 10; a *= 10; console.log(100 === a); a = 10; a /= 5; console.log(2 === a); a = 10; a %= 7; console.log(3 === a); a = 10; a += 5; console.log(15 === a); a = 10; a -= 11; console.log(-1 === a); a = 10; a <<= 10; console.log(10240 === a); a = 10; a >>= 2; console.log(2 === a); a = 10; a >>>= 2; console.log(2 === a); a = 10; a &= 3; console.log(2 === a); a = 10; a ^= 3; console.log(9 === a); a = 10; a |= 3; console.log(11 === a); 二元逻辑运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; // 逻辑与 console.log(20 === (a && b)); // 逻辑或 console.log(10 === (a || b)); 其他运算符 ------------------- 示例代码: .. code:: js var a = 10, b = 20; //条件运算符 console.log(20 === (a >= 10 ? a + 10 : b + 10)); //逗号运算符 console.log(20 === (a, b)); 运算符优先级 ---------------------------- +--------+---------------------------+------------+----------+ | 优先级 | 运算符 | 说明 | 结合性 | +========+===========================+============+==========+ | 20 | ( ... ) | 括号 | N / A | +--------+---------------------------+------------+----------+ | 19 | ... .... | 成员访问 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... [...] | 成员访问 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... (...) | 函数调用 | 从左到右 | +--------+---------------------------+------------+----------+ | 17 | ... ++ | 后置递增 | N / A | +--------+---------------------------+------------+----------+ | | ... -- | 后置递减 | N / A | +--------+---------------------------+------------+----------+ | 16 | ! ... | 逻辑非 | 从右到左 | +--------+---------------------------+------------+----------+ | | ~ ... | 按位非 | 从右到左 | +--------+---------------------------+------------+----------+ | | + ... | 一元加法 | 从右到左 | +--------+---------------------------+------------+----------+ | | - ... | 一元减法 | 从右到左 | +--------+---------------------------+------------+----------+ | | ++ ... | 前置递增 | 从右到左 | +--------+---------------------------+------------+----------+ | | -- ... | 前置递减 | 从右到左 | +--------+---------------------------+------------+----------+ | | typeof ... | 类型 | 从右到左 | +--------+---------------------------+------------+----------+ | | void ... | 空虚 | 从右到左 | +--------+---------------------------+------------+----------+ | | delete ... | 删除 | 从右到左 | +--------+---------------------------+------------+----------+ | 14 | ... *... | 乘法 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... /... | 除法 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... %... | 取模 | 从左到右 | +--------+---------------------------+------------+----------+ | 13 | ... +... | 加法 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... -... | 减法 | 从左到右 | +--------+---------------------------+------------+----------+ | 12 | ... <<... | 按位左移 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... >>... | 按位右移 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... >>>... | 无符号右移 | 从左到右 | +--------+---------------------------+------------+----------+ | 11 | ... <... | 小于 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... <=... | 小于等于 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... >... | 大于 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... >=... | 大于等于 | 从左到右 | +--------+---------------------------+------------+----------+ | 10 | ... ==... | 等号 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... !=... | 非等号 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... ===... | 全等号 | 从左到右 | +--------+---------------------------+------------+----------+ | | ... !==... | 非全等号 | 从左到右 | +--------+---------------------------+------------+----------+ | 9 | ... &... | 按位与 | 从左到右 | +--------+---------------------------+------------+----------+ | 8 | ... ^... | 按位异或 | 从左到右 | +--------+---------------------------+------------+----------+ | 7 | ... |... | 按位或 | 从左到右 | +--------+---------------------------+------------+----------+ | 6 | ... &&... | 逻辑与 | 从左到右 | +--------+---------------------------+------------+----------+ | 5 | ... ||... | 逻辑或 | 从左到右 | +--------+---------------------------+------------+----------+ | 4 | ... ... ?... ... :... ... | 条件运算符 | 从右到左 | +--------+---------------------------+------------+----------+ | 3 | ... =... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... +=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... -=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... *=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... /=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... %=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... <<=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... >>=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... >>>=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... &=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... ^=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | | ... \|=... | 赋值 | 从右到左 | +--------+---------------------------+------------+----------+ | 0 | ... ,... | 逗号 | 从左到右 | +--------+---------------------------+------------+----------+