当前位置: 首页 > news >正文

JavaScript 运算符

JavaScript 中的运算符可以根据其功能和用途分为几类。以下是主要的运算符类型及其用法:

1. 算术运算符

用于执行基本的数学运算。

  • + : 加法

    let sum = 5 + 3; // 8
    
  • - : 减法

    let difference = 5 - 3; // 2
    
  • * : 乘法

    let product = 5 * 3; // 15
    

  • / : 除法

    let quotient = 5 / 2; // 2.5
    
  • % : 取余

    let remainder = 5 % 2; // 1
    
  • ** : 幂运算(ES6引入)

    let power = 2 ** 3; // 8
    

    2. 赋值运算符

    用于将值赋给变量。

  • = : 赋值

    let x = 10;
    
  • += : 加并赋值

    x += 5; // 相当于 x = x + 5
    
  • -= : 减并赋值

    x -= 2; // 相当于 x = x - 2
    
  • *= : 乘并赋值

    x *= 2; // 相当于 x = x * 2
    
  • /= : 除并赋值

    x /= 2; // 相当于 x = x / 2
    
  • %= : 取余并赋值

    x %= 3; // 相当于 x = x % 3
    
  • **= : 幂并赋值

    x **= 2; // 相当于 x = x ** 2
    

    3. 比较运算符

    用于比较两个值,返回布尔值(truefalse)。

  • == : 相等(不严格类型检查)

    console.log(5 == '5'); // true
    

  • === : 严格相等(严格类型检查)

    console.log(5 === '5'); // false
    

  • != : 不相等(不严格类型检查)

    console.log(5 != '5'); // false
    

  • !== : 严格不相等(严格类型检查)

    console.log(5 !== '5'); // true
    

  • > : 大于

    console.log(5 > 3); // true
    

  • < : 小于

    console.log(5 < 3); // false
    

  • >= : 大于或等于

    console.log(5 >= 5); // true
    

  • <= : 小于或等于

    console.log(5 <= 3); // false
    

    4. 逻辑运算符

    用于进行逻辑运算。

  • && : 逻辑与

    console.log(true && false); // false
    

  • || : 逻辑或

    console.log(true || false); // true
    

  • ! : 逻辑非

    console.log(!true); // false
    

    5. 位运算符

    用于对数字的二进制位进行操作。

  • & : 按位与
  • | : 按位或
  • ^ : 按位异或
  • ~ : 按位取反
  • << : 左移
  • >> : 右移
  • >>> : 无符号右移
  • 6. 条件运算符(三元运算符)

    简化的条件语句,用于根据条件返回不同的值。

    let age = 18;
    let canVote = (age >= 18) ? 'Yes' : 'No'; // 'Yes'
    

    7. 其他运算符

  • 逗号运算符 ,:用于在一个表达式中计算多个值,并返回最后一个值。

    let a = (1, 2, 3); // a 现在是 3
    

  • 类型运算符 typeof:用于获取变量的类型。

    console.log(typeof 'hello'); // "string"
    

  • instanceof:用于检测对象是否为某个构造函数的实例。

    console.log([] instanceof Array); // true
    

    运算符优先级

  • 在 JavaScript 中,运算符的优先级决定了表达式中各个运算符的计算顺序。以下是运算符的优先级从高到低的列表:

  • 括号 ()

  • 成员访问 . 以及 数组索引 []

  • 自增/自减 ++ --(前缀)

  • 一元运算符 + - ! ~
  • 乘法/除法/取余 * / %
  • 加法/减法 + -
  • 位移运算符 << >> >>>
  • 关系运算符 < <= > >=
  • 相等运算符 == != === !==
  • 位与 &
  • 位异或 ^
  • 位或 |
  • 逻辑与 &&
  • 逻辑或 ||
  • 条件运算符 ? :
  • 赋值运算符 = += -= *= /= 等
  • 逗号运算符 
          总结:
    优先级运算符顺序
    1小括号、数组下标、字段访问()     []    
    2一元运算符!      ++  --
    3算数运算符先  *     /      %    后  +
    4关系运算符>    >=  <    <=
    5相等运算符==  !=   ===      !==
    6逻辑运算符先  && 后 ||
    7赋值运算符=

  • 注意事项:

  • 括号 ()的使用可以改变运算符的优先级,确保按预期顺序计算。
  • 一些运算符(如赋值运算符)是右结合的,而大多数其他运算符是左结合的,这意味着它们从左到右进行计算。

  • 示例

  • 考虑以下表达式

    let result = 5 + 3 * 2; // 结果为 11,而不是 16
    

    在这个例子中,乘法运算符 * 的优先级高于加法运算符 +,因此 3 * 2 先计算,然后再加上 5

  • 总结

    了解 JavaScript 运算符及其用法能够帮助开发者编写更加高效和清晰的代码。在实际开发中,合理利用这些运算符可以提高代码的可读性和维护性。

相关文章:

JavaScript 运算符

JavaScript 中的运算符可以根据其功能和用途分为几类。以下是主要的运算符类型及其用法&#xff1a; 1. 算术运算符 用于执行基本的数学运算。 : 加法 let sum 5 3; // 8- : 减法 let difference 5 - 3; // 2* : 乘法 let product 5 * 3; // 15/ : 除法 let quotient 5…...

3.js - 运动曲线

这个球&#xff0c;绕着这个红色的线圈转 代码 import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControlslet scene,camera,renderer,controls nulllet moon,earth null// 根据&#xff0c;一系列的点&#xff0c;创建曲线 le…...

免费ppt模板哪里找?职场必备这些利器

一眨眼&#xff0c;9月份的尾声渐近&#xff0c;无论是学生还是职场人士&#xff0c;都开始准备着新一轮的演讲和报告。在这个忙碌的时期&#xff0c;一份精美的PPT模板能够大幅提升你的工作效率&#xff0c;让你的演示更加引人入胜。 不用担心高昂的版权费用&#xff0c;市场…...

wampserve 配置本地域名,出现错误

概述 今天更换了电脑&#xff0c;在本地安装和配置docker的时候&#xff0c;想用自定义域名访问NGINX容器&#xff0c;127.0.0.1和localhost都可以访问&#xff0c;但是自定义域名无法访问&#xff0c; 接着去捯饬已经使用的wampserver的集成环境&#xff0c;出现了同样的问题…...

MySQL慢查询优化指南

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 当遇到慢查询问题时&#xff0c;不仅影响服务效率&#xff0c;还可能成为系统瓶颈。作为一位软件工程师&#xff0c;掌握MySQL慢查询优化技巧至关重要。今天&#xff0c;我们就来一场“数据库加速之旅…...

怎么录制游戏视频?精选5款游戏录屏软件

对于热爱游戏的你来说&#xff0c;记录游戏中的精彩瞬间并分享给朋友或粉丝&#xff0c;无疑是一种享受。然而&#xff0c;在众多录屏软件中&#xff0c;如何选择最适合你的那一款&#xff1f;今天&#xff0c;我们就为大家精选了五款游戏录屏软件&#xff0c;需要的朋友快来选…...

论文阅读 - MDFEND: Multi-domain Fake News Detection

https://arxiv.org/pdf/2201.00987 目录 ABSTRACT INTRODUCTION 2 RELATED WORK 3 WEIBO21: A NEW DATASET FOR MFND 3.1 Data Collection 3.2 Domain Annotation 4 MDFEND: MULTI-DOMAIN FAKE NEWS DETECTION MODEL 4.1 Representation Extraction 4.2 Domain Gate 4.…...

LabVIEW软件出现Bug如何解决

在LabVIEW开发中&#xff0c;程序出现bug是不可避免的。无论是小型项目还是复杂系统&#xff0c;调试与修复bug都是开发过程中的重要环节。下文介绍如何有效解决LabVIEW软件中的bug&#xff0c;包括常见错误类型、调试工具、错误处理机制。 1. 常见Bug类型分析 在LabVIEW中&am…...

【数据结构-栈】力扣844. 比较含退格的字符串

给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。 注意&#xff1a;如果对空文本输入退格字符&#xff0c;文本继续为空。 示例 1&#xff1a; 输入&#xff1a;s “ab#c”, t “…...

DataFrame生成excel后为什么多了一行数字

问题描述 python查询数据生成excel文件&#xff0c;生成的excel多了第一行数字索引&#xff0c;1,2,3,4,5...... 代码&#xff1a; df pd.DataFrame(data)df.to_excel(filename, sheet_name用户信息表, indexFalse) 解决&#xff1a; 原理也很简单&#xff0c;就是设置个参…...

linux 内存屏障(barrier)分析

谈起内存屏障,大家感觉这个"玩意儿"很虚,不太实际,但是内核代码中又广泛地可以看到起身影。内存屏障,英文barrier,这个"玩意儿"它还不太好去定义它。barrier,中文翻译为栅栏&#xff0c;栅栏大家都见过,现实生活中就是防止他人或者动物非法闯入而用来进行隔…...

【人工智能】Transformers之Pipeline(十九):文生文(text2text-generation)

目录 一、引言 二、文生文&#xff08;text2text-generation&#xff09; 2.1 概述 2.2 Flan-T5: One Model for ALL Tasks 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 ​​​​​​​ 2.3.3 pipeline返回参数 ​​​​​​​​​​​…...

如何使用ssm实现基于VUE的儿童教育网站的设计与实现+vue

TOC ssm676基于VUE的儿童教育网站的设计与实现vue 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全…...

MODBUS TCP 转 CANOpen

产品概述 SG-TCP-COE-210 网关可以实现将 CANOpen 接口设备连接到 MODBUS TCP 网络中。用户不需要了解具体的 CANOpen 和 Modbus TCP 协议即可实现将CANOpen 设备挂载到 MODBUS TCP 接口的 PLC 上&#xff0c;并和 CANOpen 设备进行数据交互。 产品特点 &#xf…...

vue2+elementUI实现handleSelectionChange批量删除-前后端

功能需求&#xff1a;实现选中一个或多个执行批量删除操作 在elementUI官网选择一个表格样式模板&#xff0c;Element - The worlds most popular Vue UI framework 这里采用的是 将代码复制到前端&#xff0c;这里是index.vue <template><el-button type"dang…...

LLMs之OCR:llm_aided_ocr(基于LLM辅助的OCR项目)的简介、安装和使用方法、案例应用之详细攻略

LLMs之OCR&#xff1a;llm_aided_ocr(基于LLM辅助的OCR项目)的简介、安装和使用方法、案例应用之详细攻略 目录 llm_aided_ocr的简介 1、特性 2、详细技术概览 PDF处理和OCR PDF到图像转换 OCR处理 文本处理流程 分块创建 错误校正与格式化 重复内容移除 标题和页码…...

低代码平台后端搭建-阶段完结

前言 最近又要开始为跳槽做准备了&#xff0c;发现还是写博客学的效率高点&#xff0c;在总结其他技术栈之前准备先把这个专题小完结一波。在这一篇中我又试着添加了一些实际项目中可能会用到的功能点&#xff0c;用来验证这个平台的扩展性&#xff0c;以及总结一些学过的知识。…...

暑假考研集训营游记

文章目录 摘要&#xff1a;1.对各大辅导机构考研封闭集训营的一些个人看法&#xff1a;2.对于考研原因一些感想&#xff1a;结语 摘要&#xff1a; Ashy在暑假的时候参加了所在辅导班的为期一个月的考研封闭集训营&#xff0c;有了一些全新的感悟&#xff0c;略作记录。 1.对…...

C#中的报文(Message)

在C#中&#xff0c;报文&#xff08;Message&#xff09;通常是指在网络通信中交换的数据单元。报文可以由多种不同的组成部分构成&#xff0c;具体取决于通信协议和应用场景。 以下是一些常见的报文组成部分&#xff1a; 头部&#xff08;Header&#xff09;&#xff1a;包含…...

Python知识点:如何使用Python与Java进行互操作(Jython)

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; Jython 是一种完全兼容 Java 的 Python 实现&#xff0c;它将 Python 代码编译成…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...