赛捷软件论坛's Archiver

vicky.yu 发表于 2023-6-6 09:33

JavaScript 运算符优先级

运算符优先级(Operator Precedence)描述了算术表达式中运算的执行顺序。

乘法 (*) 和除法 (/) 的优先级高于加法 (+) 和减法 (-)。

实例
与传统数学一样,先进行乘法运算:

let x = 100 + 50 * 3;
亲自试一试
使用圆括号时,先计算圆括号内的运算:

let x = (100 + 50) * 3;
亲自试一试
优先级相同的运算(如 * 和 /)从左到右计算:

let x = 100 / 50 * 3;
亲自试一试
运算符优先级值
括号中的表达式在表达式的其余部分之前计算,函数在结果用于表达式的其余部分之前执行:

优先级        运算符        描述        例子
18        ( )        表达式分组        (100 + 50) * 3
17        .        属于成员        person.name
17        []        属于成员        person["name"]
17        ?.        可选链 ES2020        x ?. y
17        ()        函数调用        myFunction()
17        new        带参的新建        new Date("June 5,2022")
16        new        不带参的新建        new Date()
增量运算符
后缀递增在前缀递增之前执行。

15        ++        后缀递增        i++
15        --        后缀递减        i--
14        ++        前缀递增        ++i
14        --        前缀递减        --i
NOT 运算符
14        !        逻辑非        !(x==y)
14        ~        按位非        ~x
一元运算符
14        +        一元加        +x
14        -        一元减        -x
14        typeof        数据类型        typeof x
14        void        评估空        void(0)
14        delete        属性删除        delete myCar.color
算术运算符
指数运算在乘法之前执行。

乘法和除法在加法和减法之前执行。

13        **        指数运算 ES2016        10 ** 2
12        *        乘        10 * 5
12        /        除        10 / 5
12        %        除法余数        10 % 5
11        +        加        10 + 5
11        -        减        10 - 5
11        +        串联        "Bill" + "Gates"
移位运算符
10        <<        左移        x << 2
10        >>        右移(带符号)        x >> 2
10        >>>        右移(无符号)        x >>> 2
关系运算符
9        in        对象中的属性        "PI" in Math
9        instanceof        对象的实例        x instanceof Array
比较运算符
9        <        小于        x < y
9        <=        小于或等于        x <= y
9        >        大于        x > y
9        >=        大于或等于        x >= Array
8        ==        等于        x == y
8        ===        严格相等        x === y
8        !=        不相等        x != y
8        !==        严格不相等        x !== y
位运算符
7        &        按位与        x & y
6        ^        按位异或        x ^ y
5        |        按位或        x | y
逻辑运算符
4        &&        逻辑与        x && y
3        ||        逻辑或        x || y
3        ??        空值合并 ES2020        x ?? y
条件(三元)运算符
2        ? :        条件        ? "yes" : "no"
赋值运算符
赋值在其他操作之后执行。

2        =        简单赋值        x = y
2        :        冒号赋值        x: 5
2        +=        加法赋值        x += y
2        -=        减法赋值        x -= y
2        *=        乘法赋值        x *= y
2        **=        指数赋值        x **= y
2        /=        除法赋值        x /= y
2        %=        取余赋值        x %= y
2        <<=        左移赋值        x <<= y
2        >>=        右移赋值        x >>= y
2        >>>=        无符号右移        x >>>= y
2        &=        位与赋值        x &= y
2        |=        位或赋值        x |= y
2        ^=        位异或赋值        x ^= y
2        &&=        逻辑与赋值        x &= y
2        ||=        逻辑或赋值        x ||= y
2        =>        箭头        x => y
2        yield        暂停 / 恢复        yield x
2        yield*        委托运算符        yield* x
2        ...        展开运算符        ... x
1        ,        逗号        x , y
另请参阅
教程:JavaScript 运算符

参考手册:JavaScript 运算符

JS 正则表达式
JS 异常
JavaScript 和 HTML DOM 参考手册
JavaScript 实例
JavaScript 测验
JavaScript 高级教程

W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.