前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaScript】JavaScript 运算符 ⑤ ( 运算符优先级 )

【JavaScript】JavaScript 运算符 ⑤ ( 运算符优先级 )

作者头像
韩曙亮
发布2024-03-23 08:39:39
790
发布2024-03-23 08:39:39
举报

一、JavaScript 运算符优先级

1、运算符优先级 概念

JavaScript 的 运算符 是有 " 优先级 " 的 , " 运算符优先级 " 决定 一个表达式中 多个 运算符的 执行顺序 ;

一个 表达式 中 , 有多个运算符 , " 运算符优先级 " 决定了 哪个 运算符 首先与操作数结合 ;

  • 运算符优先级不同 : 优先级较高的运算符 比 优先级较低的运算符 先与 操作数 结合 ;
  • 运算符优先级相同 : 运算符的优先级相同 , 则根据运算符的结合性 判定 哪个先与 操作数 结合 ;

小括号 优先级最高 , 可以直接改变 运算符 的 结合性 ;

一元运算符 的 优先级 仅次于 小括号 ;

2、运算符优先级 列举

下面的 运算符 优先级 按照 从上到下 顺序 , 优先级由高到低 ;

JavaScript 中的 运算符 优先级顺序 :

  • 括号运算符 :
    • 小括号运算符 () 可以直接 用于改变 正常的 运算符 的 优先级顺序 ;
  • 一元运算符 : 下面的 运算符 优先级相同 ;
    • 递增运算符 ++ : 前置递增 / 后置递增 ;
    • 递减运算符 -- : 前置递减 / 后置递减 ;
    • 一元加运算符 +
    • 一元减运算符 -
    • 逻辑非运算符 !
  • 算术运算符 :
    • 乘除运算符 : 下面的 运算符 优先级相同 ;
      • 乘法运算符 *
      • 除法运算符 /
      • 取模运算符 %
    • 加减运算符 : 下面的 运算符 优先级相同 ;
      • 加法运算符 +
      • 减法运算符 -
    • 位移运算符 : 下面的 运算符 优先级相同 ;
      • 左移运算符 <<
      • 右移运算符 >>
      • 无符号右移运算符 >>>
    • 关系运算符 :
      • 小于运算符 <
      • 大于运算符 >
      • 小于等于运算符 <=
      • 大于等于运算符 >=
    • 相等运算符 :
      • 等于运算符 ==
      • 不等于运算符 !=
      • 严格等于运算符 ===
      • 严格不等于运算符 !==
    • 逻辑运算符 : && 操作符优先级 高于 || 操作符 ;
      • 逻辑与运算符 &&
      • 逻辑或运算符 ||
    • 赋值运算符 :
      • 赋值运算符 =
      • 加法赋值运算符 +=
      • 减法赋值运算符 -=
      • 乘法赋值运算符 *=
      • 除法赋值运算符 /=
      • 取模赋值运算符 %=
      • 左移赋值运算符 <<=
      • 右移赋值运算符 >>=
    • 逗号运算符 ,

3、运算符示例

在下面的代码中 , 分析代码中表达式的 运算符优先级 ;

代码语言:javascript
复制
var exp = 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false
console.log(exp)

分析 上述 表达式 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false 中的 运算符优先级 :

  • 小括号 运算符 优先级最高 , (2 * 3 == 6) 中的运算符是结合在一起进行运算的 ; 2 * 3 == 6 中 , 算术运算符 * 优先级高于 相等运算符 == 优先级 , 先计算 乘法 得到 6 , 然后计算 == 是否相等 , 最终得到 true 值 ;
代码语言:javascript
复制
2 > 3 || "Tom" == "Jerry" && !(true) && false
  • 一元运算符 ! 高于 除 小括号 意外的其它运算符 , 然后计算该运算 , !true 得到 false ;
代码语言:javascript
复制
2 > 3 || "Tom" == "Jerry" && false && false
  • 2 > 3 中的 > 优先级 是目前最高的 , 计算得到结果 false ;
代码语言:javascript
复制
false || "Tom" == "Jerry" && false && false
  • "Tom" == "Jerry" 中的 == 运算符 目前优先级最高 , 计算得到结果 false ;
代码语言:javascript
复制
false || false && false && false
  • 逻辑与 && 运算符 优先级 高于 逻辑或 || 运算符 , 先计算 && 运算 , 有多个 && 运算 , 从左到右结合即可 ;
代码语言:javascript
复制
false || false
  • 最后计算 逻辑或 || 操作 , 得到 false 结果 ;

完整代码如下 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 运算符优先级

        var exp = 2 > 3 || "Tom" == "Jerry" && !(2 * 3 == 6) && false
        console.log(exp)
    </script>
</head>

<body>
</body>

</html>

执行结果 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、JavaScript 运算符优先级
    • 1、运算符优先级 概念
      • 2、运算符优先级 列举
        • 3、运算符示例
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档