微信小程序开发文档 微信小程序 运算符

2024-02-25 开发教程 微信小程序开发文档 匿名 4

基本运算符

示例代码:

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);

一元运算符

示例代码:

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);

位运算符

示例代码:

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));

比较运算符

示例代码:

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));

等值运算符

示例代码:

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));

赋值运算符

示例代码:

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);

二元逻辑运算符

示例代码:

var a = 10, b = 20;
// 逻辑与
console.log(20 === (a && b));
// 逻辑或
console.log(10 === (a || b));

其他运算符

示例代码:

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...typeof从右到左
void...void从右到左
delete...delete从右到左
14... *...乘法从左到右
... /...除法从左到右
... %...取模从左到右
13... +...加法从左到右
... -...减法从左到右
12... <<...按位左移从左到右
... >>...按位右移从左到右
... >>>...无符号右移从左到右
11... <...小于从左到右
... <=...小于等于从左到右
... >...大于从左到右
... >=...大于等于从左到右
10... ==...等号从左到右
... !=...非等号从左到右
... ===...全等号从左到右
... !==...非全等号从左到右
9... &...按位与从左到右
8... ^...按位异或从左到右
7... ...按位或从左到右
6... &&...逻辑与从左到右
5... ||...逻辑或从左到右
4... ?... :...条件运算符从右到左
3... =...赋值从右到左
... +=...赋值从右到左
... -=...赋值从右到左
... *=...赋值从右到左
... /=...赋值从右到左
... %=...赋值从右到左
... <<=...赋值从右到左
... >>=...赋值从右到左
... >>>=...赋值从右到左
... &=...赋值从右到左
... ^=...赋值从右到左
... |=...赋值从右到左
0... ,...逗号从左到右