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

news2024/11/26 4:32:04

文章目录

  • 一、JavaScript 运算符优先级
    • 1、运算符优先级 概念
    • 2、运算符优先级 列举
    • 3、运算符示例





一、JavaScript 运算符优先级




1、运算符优先级 概念


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


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

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

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

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


2、运算符优先级 列举


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

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

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

3、运算符示例


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

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 值 ;
2 > 3 || "Tom" == "Jerry" && !(true) && false
  • 一元运算符 ! 高于 除 小括号 意外的其它运算符 , 然后计算该运算 , !true 得到 false ;
2 > 3 || "Tom" == "Jerry" && false && false
  • 2 > 3 中的 > 优先级 是目前最高的 , 计算得到结果 false ;
false || "Tom" == "Jerry" && false && false
  • "Tom" == "Jerry" 中的 == 运算符 目前优先级最高 , 计算得到结果 false ;
false || false && false && false
  • 逻辑与 && 运算符 优先级 高于 逻辑或 || 运算符 , 先计算 && 运算 , 有多个 && 运算 , 从左到右结合即可 ;
false || false
  • 最后计算 逻辑或 || 操作 , 得到 false 结果 ;

完整代码如下 :

<!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>

执行结果 :

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1531043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【每日一题】好子数组的最大分数

Tag 【单调栈】【暴力枚举】【数组】【2024-03-19】 题目来源 1793. 好子数组的最大分数 解题思路 本题和 84. 柱状图中最大的矩形 一样&#xff0c;计算的都是最大矩形的面积。只不过多了一个约束&#xff1a;矩形必须包含下标 k。 以下的方法一和方法二是 84. 柱状图中最…

你还在花钱看短剧吗?这些人做短剧推广已经通过短剧赚钱了

短剧分销&#xff0c;简单来说&#xff0c;就是你在抖音、快手、小红书等短视频平台浏览时看到的一半时&#xff0c;指引你去其他平台观看完整版的操作。 而使用“蜂小推”做短剧推广&#xff0c;你也能利用短剧快速致富~ 想要进行短剧分销&#xff0c;你需要经过一系列步骤&a…

23.python标准库之turtle库

一、窗体函数 turtle.setup(width, height, startx, starty) width:窗口宽度 height:窗口高度 startx:窗口与屏幕左侧距离&#xff08;单位象素&#xff09; starty:窗口与屏幕顶部距离&#xff08;单位象素&#xff09; 二、画笔状态函数 三、画笔运动函数

理清大数据技术与架构

大数据并不是一个系统软件&#xff0c;更不是一个单一的软件&#xff0c;它实际上是一种技术体系、一种数据处理方法&#xff0c;甚至可以说是一个服务平台。在这个技术体系中&#xff0c;涵盖了许多不同的部件&#xff0c;比如Hadoop服务平台。这一服务平台可以根据具体情况自…

Mybatis-Plus通用枚举介绍和使用

本文使用的是 Mybatis-Plus 从 3.4.2 版本来实现通用枚举配置&#xff0c;不同的版本&#xff0c;通用枚举配置会不一样&#xff0c;而且从Mybatis-Plus 从 3.5.2 版本开始只需使用 EnumValue 注解枚举属性&#xff0c;就可以实现一系列功能&#xff0c;而不需要其他配置。 这…

【python】python结合js逆向,让有道翻译成为你的翻译官,实现本地免费实时翻译

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者等等。 🏆《博客》:Python全栈,前后端开发,人工智能,js逆向,A…

Spring Cloud 整合 GateWay

目录 第一章 微服务架构图 第二章 Spring Cloud整合Nacos集群 第三章 Spring Cloud GateWay 第四章 Spring Cloud Alibaba 整合Sentinel 第五章 Spring Cloud Alibaba 整合SkyWalking链路跟踪 第六章 Spring Cloud Alibaba 整合Seata分布式事务 第七章 Spring Cloud 集成Auth用…

Jenkins通知目标服务器拉取Harbor镜像部署

1.告诉目标服务器拉取哪个镜像 2.判断当前有没有正在运行此容器&#xff0c;有就删除 3.接着查看拉取的镜像目标服务器上是否已存在&#xff0c;有就删除 4.拉取Harbor镜像 5.运行容器 目标服务器编写脚本 创建个部署脚本 vim deploy.sh告诉目标服务器Harbor地址、仓库、镜像…

零基础学python:5、循环语句的使用

循环 目标 程序的三大流程while 循环基本使用break 和 continuewhile 循环嵌套01. 程序的三大流程 在程序开发中,一共有三种流程方式: 顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 —— 让 特定代码 重复 执行02. while 循环基本使用…

基于卷积神经网络实现手写数字识别

基于卷积神经网络实现手写数字识别 基于卷积神经网络实现手写数字识别。具体过程如下&#xff1a; &#xff08;1&#xff09; 定义ConvNet结构类及其前向传播方式 &#xff08;2&#xff09; 设置超参数以及导入相关的包。 &#xff08;3&#xff09; 定义训练网络函数和绘…

R语言实现多要素偏相关分析

偏相关分析是指当两个变量同时与第三个变量相关时&#xff0c;将第三个变量的影响剔除&#xff0c;只分析另外两个变量之间相关程度的过程&#xff0c;判定指标是相关系数的R值。 在GIS中&#xff0c;偏相关分析也十分常见&#xff0c;我们经常需要分析某一个指数与相关环境参…

基于Java中的SSM框架实现快餐店线上点餐系统项目【项目源码+论文说明】

基于Java中的SSM框架实现快餐店线上点餐系统演示 摘要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订…

Docker进阶教程 - 4 Docker网络

更好的阅读体验&#xff1a;点这里 &#xff08; www.doubibiji.com &#xff09; 4 Docker网络 先说我们现在遇到的问题&#xff1a; 我们现在有一个 Redis 容器&#xff0c;一个 SpringBoot 项目容器&#xff0c;在 SpringBoot 项目的代码中如何访问 Redis 容器中的服务呢…

Harbor镜像仓库的安装和使用

1 Harbor安装 参考文章&#xff1a; 银河麒麟v10离线安装harbor 由于配置了本地私有yum源&#xff0c;因此&#xff0c;直接使用yum命令安装docker和docker-compose 1.1 安装docker yum install docker-ce1.2 安装docker-compose yum install docker-compose1.3 安装harbo…

服务器被挖矿后修改密码报错Authentication token manipulation error

服务器被挖矿&#xff0c;需要修改密码&#xff0c;结果执行的时候发现报错 passwd: Authentication token manipulation error 尝试执行下列命令后再进行密码修改&#xff0c;修改成功 chattr -i /etc/passwd /etc/shadowchattr的主要用法 参考文章: https://c.biancheng.ne…

GEE遥感云大数据林业应用典型案例及GPT模型应用

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

威纶通触摸屏在编辑画面时如何更改窗口画面大小?

威纶通触摸屏在编辑画面时如何更改窗口画面大小&#xff1f; 如下图所示&#xff0c;Windows11系统下&#xff0c;打开威纶通触摸屏编程软件easy builder pro&#xff0c;此时可以看到画面窗口非常小&#xff0c;不方便编辑和操作&#xff0c; 如下图所示&#xff0c;点击上方工…

swagger3快速使用

目录 &#x1f37f;1.导入依赖 &#x1f32d;2.添加配置文件 &#x1f9c2;3.添加注解 &#x1f96f;4.访问客户端 1.导入依赖 引入swagger3的依赖包 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artif…

B3870 [GESP202309 四级] 变长编码(膜拜版)

本题包括&#xff1a; 1.进制的超强使用 2.进制的截位使用 本题参考洛谷题解&#xff1a;https://www.luogu.com.cn/article/daqzhu5m &#xff08;在线膜拜作者的代码中&#xff09; 难度&#xff1a;普及- 对于笔者而言&#xff1a; 这道题在洛谷上通过率很高&#xff0c;…

“JavaScript: void(0)的替代方案有哪些?”

学习目标&#xff1a; 理解javascript:void(0)的工作原理&#xff0c;以及它在前端开发中的作用和用途。掌握javascript:void(0)的正确用法&#xff0c;包括在HTML中使用和在事件处理程序中使用。能够识别javascript:void(0)可能引起的常见问题&#xff0c;并学会相应的解决方…