[JavaScript] 运算符详解

文章目录

  • 算术运算符(Arithmetic Operators)
      • 注意事项:
  • 比较运算符(Comparison Operators)
      • 注意事项:
  • 逻辑运算符(Logical Operators)
      • 短路运算:
      • 逻辑运算符的返回值:
  • 赋值运算符(Assignment Operators)
  • 三元运算符(Ternary Operator)
  • 位运算符(Bitwise Operators)
  • 运算符优先级
  • 小练习

算术运算符(Arithmetic Operators)

算术运算符用于完成基本的数学计算。

运算符描述示例结果
+加法5 + 27
-减法5 - 23
*乘法5 * 210
/除法5 / 22.5
%取余(模运算)5 % 21
**指数(幂运算)2 ** 38
++自增(每次加1)let x = 5; x++5,然后变为6
--自减(每次减1)let x = 5; x--5,然后变为4

注意事项:

  • 整数除法:JavaScript中没有整数除法,5 / 2 会得到浮点结果2.5
  • 自增/自减运算符可以分为前置和后置:
    • 前置++x:先加1后返回结果。
    • 后置x++:先返回结果后加1。
let a = 10;
console.log(a++); // 输出 10,先返回后加1
console.log(a);   // 输出 11
console.log(++a); // 输出 12,先加1后返回

比较运算符(Comparison Operators)

比较运算符返回布尔值:truefalse

运算符描述示例结果
==相等(值相等)5 == '5'true
===全等(值和类型都相等)5 === '5'false
!=不相等(值不相等)5 != '5'false
!==不全等(值或类型不相等)5 !== '5'true
>大于5 > 3true
<小于5 < 3false
>=大于等于5 >= 5true
<=小于等于3 <= 5true

注意事项:

  • ==** 与 === 的区别**:
    • == 会进行类型转换,只比较值是否相等。
    • === 不会进行类型转换,要求值和类型都相等。
console.log(5 == '5');  // true,因为字符串'5'被转换成数字5
console.log(5 === '5'); // false,因为类型不同

逻辑运算符(Logical Operators)

逻辑运算符用于布尔值运算,主要包括:

运算符描述示例结果
&&逻辑与(AND)true && falsefalse
``逻辑或(OR)
!逻辑非(NOT)!truefalse

短路运算:

  • &&:遇到false会短路,直接返回false的值。
  • ||:遇到true会短路,直接返回true的值。
let x = 5;
console.log(x > 0 && x < 10); // true,x大于0并且小于10
console.log(x > 0 || x < 3);  // true,x大于0或小于3
console.log(!(x > 0));        // false,x大于0的反向

逻辑运算符的返回值:

  • &&|| 不总是返回布尔值,它们会返回短路时的具体值。
console.log('a' && 'b'); // 'b',因为'a'为真,继续返回后一个值
console.log(null || 'hello'); // 'hello',因为`null`为假,返回`hello`

赋值运算符(Assignment Operators)

赋值运算符用来给变量赋值。

运算符描述示例等价于
=赋值x = 5
+=加后赋值x += 3x = x + 3
-=减后赋值x -= 3x = x - 3
*=乘后赋值x *= 3x = x * 3
/=除后赋值x /= 3x = x / 3
%=取余后赋值x %= 3x = x % 3
**=幂后赋值x **= 2x = x ** 2

三元运算符(Ternary Operator)

三元运算符是一个简单的条件运算符,语法为:条件 ? 表达式1 : 表达式2

let age = 20;
let isAdult = age >= 18 ? '成年人' : '未成年人';
console.log(isAdult);  // 输出:成年人

位运算符(Bitwise Operators)

位运算符操作二进制位,用得较少,但在某些性能优化或算法中很重要。

运算符描述示例
&按位与5 & 3(结果:1
``按位或
^按位异或5 ^ 3(结果:6
~按位取反~5(结果:-6
<<左移5 << 1(结果:10
>>右移5 >> 1(结果:2

运算符优先级

JavaScript中的运算符是有优先级的,高优先级的运算符会优先计算。

优先级运算符说明
1()括号
2++ --自增、自减
3**幂运算
4* / %乘、除、取余
5+ -加、减
6< <= > >=比较
7== != === !==相等、全等等
8&&逻辑与
9`
10=赋值

小练习

可以尝试完成以下练习题:

  1. 使用三元运算符,根据一个数字是否大于0来输出“正数”或“非正数”。
  2. 判断一个字符串是否为空(长度为0),使用||输出默认值。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java测试开发平台搭建(九)前端

1. 搭建前端vue环境 Vue3 安装 | 菜鸟教程 2. 创建项目 1.进入ui vue ui 2. create项目 3. 成功之后添加插件&#xff1a; cli-plugin-router vue-cli-plugin-vuetify 4. 添加依赖 axios 5. 点击任务开始运行 如果报错&#xff1a; 修改vue.config.jsconst { defineConfig }…

【Linux系统编程】—— 深度解析进程等待与终止:系统高效运行的关键

文章目录 进程创建再次认识fork()函数fork()函数返回值 写时拷贝fork常规⽤法以及调用失败的原因 进程终⽌进程终止对应的三种情况进程常⻅退出⽅法_exit函数exit函数return退出 进程等待进程等待的必要性进程等待的⽅法 进程创建 再次认识fork()函数 fork函数初识&#xff1…

最新版Edge浏览器加载ActiveX控件技术——allWebPlugin中间件之awp_CreateActiveXObject接口用法

背景 ActiveXObject‌是JavaScript中的一个特殊对象&#xff0c;用于在Internet Explorer&#xff08;IE&#xff09;浏览器中创建和操作COM&#xff08;Component Object Model&#xff09;对象。COM是一种面向对象的软件组件技术&#xff0c;允许不同应用程序之间的互操作性。…

使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。

在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出&#xff0c;详见以下博客&#xff1a; Spring Boot Apache POI 实现 Exc&#xff08;&#xff09;el 导出&#xff1a;BOM物料清单生成器&#xff08;支持中文文件名、样式美化、数据合并&#…

JS基础(5):运算符和语句

一.运算符 1.赋值运算符 加减乘除都是一样的&#xff0c;&#xff0c;-&#xff0c;*&#xff0c;/ 2.一元运算符&#xff1a;经常用来计数 自增&#xff1a; 每次只能加一 自减&#xff1a;-- 前置自增 后置自增 结…

以租赁合同的例子讲清楚 开源协议原理和区别

开源协议通俗易懂的方式介绍清楚原理和区别 开源协议其实就是软件的“使用规则”&#xff0c;决定了别人可以如何使用、修改、分享你的代码。通俗一点说&#xff0c;如果你写了一段代码&#xff0c;开源协议就是告诉别人在什么条件下他们可以使用你的代码&#xff0c;以及他们可…

Flowable 管理各业务流程:流程设计器 (获取流程模型 XML)、流程部署、启动流程、流程审批、流程挂起和激活、任务分配

文章目录 引言I 表结构主要表前缀及其用途核心表II 流程设计器(Flowable BPMN模型编辑器插件)Flowable-UIvue插件III 流程部署部署步骤例子:根据流程模型ID部署IV 启动流程启动步骤ACT_RE_PROCDEF:流程定义相关信息例子:根据流程 ID 启动流程V 流程审批审批步骤Flowable 审…

【C++课程学习】:C++中的IO流(istream,iostream,fstream,sstream)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 C学习笔记&#xff1a; https://blog.csdn.net/djdjiejsn/category_12682189.html 前言&#xff1a; 在C语…

四、华为交换机 STP

生成树协议&#xff08;STP&#xff09;的核心目的是在存在冗余链路的网络中&#xff0c;构建一个无环的拓扑结构&#xff0c;从而防止网络环路带来的广播风暴等问题 一、STP 原理 选举根桥&#xff1a;网络中的每台交换机都会有一个唯一的桥 ID&#xff08;BID&#xff09;&am…

数字图像处理:实验二

任务一&#xff1a; 将不同像素&#xff08;32、64和256&#xff09;的原图像放大为像素大 小为1024*1024的图像&#xff08;图像自选&#xff09; 要求&#xff1a;1&#xff09;输出一幅图&#xff0c;该图包含六幅子图&#xff0c;第一排是原图&#xff0c;第 二排是对应放大…

综述:大语言模型在机器人导航中的最新进展!

简介 机器人导航是指机器人能够在环境中自主移动和定位的能力。本文系统地回顾了基于大语言模型&#xff08;LLMs&#xff09;的机器人导航研究&#xff0c;将其分为感知、规划、控制、交互和协调等方面。具体来说&#xff0c;机器人导航通常被视为一个几何映射和规划问题&…

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中&#xff0c;利用FIFO&#xff08;first in first out&#xff09;进行数据处理是再普遍不过的应用了&#xff0c…

嵌入式知识点总结 C/C++ 专题提升(一)-关键字

针对于嵌入式软件杂乱的知识点总结起来&#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.C语言宏中"#“和"##"的用法 1.1.(#)字符串化操作符 1.2.(##)符号连接操作符 2.关键字volatile有什么含意?并举出三个不同的例子? 2.1.并行设备的硬件寄存…

【前端动效】HTML + CSS 实现打字机效果

目录 1. 效果展示 2. 思路分析 2.1 难点 2.2 实现思路 3. 代码实现 3.1 html部分 3.2 css部分 3.3 完整代码 4. 总结 1. 效果展示 如图所示&#xff0c;这次带来的是一个有趣的“擦除”效果&#xff0c;也可以叫做打字机效果&#xff0c;其中一段文本从左到右逐渐从…

AI守护煤矿安全生产:基于视频智能的煤矿管理系统架构全解析

前言 本文我将介绍我和我的团队自主研发设计的一款AI产品的成果展示——“基于视频AI识别技术的煤矿安全生产管理系统”。 这款产品是目前我在创业阶段和几位矿业大学的博士共同从架构设计、开发到交付的全过程中首次在博客频道发布, 我之前一直想写但没有机会来整理这套系统的…

51c嵌入式~单片机~合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/13127816 一、STM32单片机的知识点总结 本文将以STM32F10x为例&#xff0c;对标准库开发进行概览。主要分为三块内容&#xff1a; STM32系统结构寄存器通过点灯案例&#xff0c;详解如何基于标准库构建STM32工程 STM3…

【Cadence tip】噪声仿真方法

1.噪声仿真设置 以五管OTA的噪声仿真为例 2.仿真结果 2.1等效输入噪声 2.2查看噪声贡献

vue3+elementPlus之后台管理系统(从0到1)(day2)

登录页面 静态页面搭建 <template><div class"login-container"><div class"form-wrap"><h2 class"header">后台管理系统</h2><el-input v-model"adminName" placeholder"请输入管理员账号&qu…

svn tag

一般发布版本前&#xff0c;需要在svn上打个tag。步骤如下&#xff1a; 1、空白处右击&#xff0c;选择TortoiseSVN->Branch/tag; 2、填写To path&#xff0c;即tag的路基以及tag命名&#xff08;一般用版本号来命名&#xff09;&#xff1b;填写tag信息&#xff1b;勾选cr…

通信协议之数据帧常用校验方法(奇偶校验、CRC校验)

前言 学习永无止境&#xff01;本篇是通信协议之数据帧校验方法&#xff0c;包括奇偶校验、CRC等校验原理及实现。 注&#xff1a;本文章为学习笔记&#xff0c;部分图片与文字来源于网络/应用手册&#xff0c;如侵权请联系&#xff01;谢谢&#xff01; 一、奇偶校验 1.1 奇偶…