JavaScript基础——JavaScript运算符
赋值运算符
算术运算符
一元运算符
三元/三目运算符
比较运算符
逻辑运算符
运算符优先级
在JavaScript中,常见的运算符可以包括赋值运算符、一元运算符、算术运算符(二元运算符)、三元/三目运算符、比较运算符、逻辑运算符等(其他不常见的这里不说明)。
赋值运算符
赋值运算符用于给变量赋值,如=
、+=
、-=
、*=
、/=
、%=
、**=
、&=
、|=
、^=
、<<=
、>>=
、>>>=
。
常见的符号是“=”,表示赋值,假设现在有一个user变量,user="admin",表示将字符串"admin"赋值给user变量。如下:
+=、-=、*=、/=、%=都是用于变量自身与其他变量(常量)做数学运算,例如,a+=1,相当于a=a+1,也就是将a+1的结果赋值给a,其他符号同理。
a-=1 ,相当于a=a-1,也就是将a-1的结果赋值给a。
a/=2 ,相当于a=a/2,也就是将a/2的结果赋值给a。
a*=2 ,相当于a=a*2,也就是将a*2的结果赋值给a。
a%=3 ,相当于a=a%3,也就是将a%3的结果赋值给a。
完整代码如下:
<script>// 1)赋值运算符var user = "admin";console.log(user);//'admin'var a = 10;console.log(a);a += 1;console.log(a);var a = 10;console.log(a);a -= 1;console.log(a);var a = 10;console.log(a);a /= 2;console.log(a);var a = 10;console.log(a);a *= 2;console.log(a);var a = 10;console.log(a);a %= 3;console.log(a);</script>
算术运算符
算术运算符又称为二元运算符,也就是需要两个操作数,算术运算符用于执行基本的数学运算,如+
(加)、-
(减)、*
(乘)、/
(除)、%
(取余)、**
(幂运算符)、++(自增运算符)、--(自减运算符)
其中,+
(加)、-
(减)、*
(乘)、/
(除)、%
(取余)、**
(幂运算符)与数学计算完全相同,代码如下:
完整代码如下:
<script>// 2)算术运算符console.log(1 + 2);console.log(1 - 1);console.log(1 * 1);console.log(1 / 1);console.log(12 % 10);console.log(2 ** 2);</script>
一元运算符
自增自减运算符(++、--)包括前置自增自减(++n、--n)运算符和后置自增自减(n++、n--)运算符,两者在计算上有区别。
前置自增自减(++n、--n)运算符是先计算后输出,后置自增自减(n++、n--)运算符是先输出后计算。
假设定义一个变量a,值为10,定义一个变量b,值为20,分别利用前置自增和后置自增来观察两者的区别,可以发现前置自增计算的a输出后为11,后置自增计算的b输出的值为20,再次输出才为21。
代码如下:
<script>var a = 10;console.log(a);console.log(++a);console.log(a);var b = 20;console.log(b);console.log(b++);console.log(b);</script>
三元/三目运算符
三元运算符也叫做条件运算符,需要三个操作数,形式如条件是否成立?执行代码1:执行代码2,返回的是一个值。
条件是否成立?成立执行代码:不成立执行代码
var d = b > c ? b : c; 表示将获得的值赋给d,条件是b是否大于c,如果大于(成立),返回b的值,如果小于(不成立),返回c的值。
完整代码如下:
<script>// 条件判断的表达式// 三元运算// 条件是否成立?执行代码1:执行代码2var b = 10;var c = 20;var d = b > c ? b : c;console.log(d);// 定义变量记录小时var h = 6;var v = h < 10 ? '0' + h : h;console.log(v);1 > 2 ? console.log("条件成立") : console.log("条件不成立");false ? console.log("条件成立") : console.log("条件不成立");true ? console.log("条件成立") : console.log("条件不成立");</script>
比较运算符
比较运算符用于比较两个值,如==
、===
、!=
、!==
、>
、>=
、<
、<=
,两个数比较后输出的是布尔值(true/false)
其中,>
、>=
、<
、<=
运算符与数学中的运算符完全一致,比较后输出布尔值。
代码如下:
<script>// 3) 比较运算符console.log(1 > 2);console.log(1 < 2);console.log(1 >= 2);console.log(1 <= 2);</script>
“==”、“===”符号用于比较两个数是否相等,返回值也是布尔值,其中“==”仅比较两个数的值,如果数据类型不相等,只要值相等就是true,“===”比较两个数的值以及数据类型,只有数据类型和值都相同才为true。
完整代码:
<script>console.log(1 == '1');console.log(1 == 2);console.log(1 === '1');console.log(1 === 1);</script>
“!=”、“!==”符号与 “==”、“===”相反,用于比较两个数是否不相等,返回值也是布尔值,其中“!=”仅比较两个数的值,如果数据类型不相等,只要值不相等就是true,“!==”比较两个数的值以及数据类型,只有数据类型和值都不相等才为true。
完整代码:
<script>console.log(1 != '1');console.log(1 != 1);console.log(1 != 2);console.log(1 !== '1');console.log(1 !== 1);</script>
逻辑运算符
逻辑运算符用于逻辑运算,如&&
(逻辑与)、||
(逻辑或)、!
(逻辑非)。
符号 | 名称 | 日常读法 | 特点 | 口诀 |
&& | 逻辑与 | 并且 | 符号两边都为真(true),结果才为真(true) | 一假则假 |
|| | 逻辑或 | 或者 | 符号一个为真(true),结果就为真(true) | 一真则真 |
! | 逻辑非 | 取反 | 真(true)变假(false),假(false)变真(true) | 真变假,假变真 |
&&
(逻辑与)表示条件两个或者以上,只要有一个条件不成立(是假),结果就不成立(是假)
在&&
(逻辑与)中,如果有一个为真,另一个有值,就把值赋给这个变量。
完整代码如下:
<script>console.log(true && false);// falseconsole.log(true && false && true && true);// falseconsole.log(true && true && true && true);// trueconsole.log(1 < 2 && 3 < 4 && 4 < 5 && 5 < 6);// truevar k1 = true && false;console.log(k1);// falsevar k2 = false && true;console.log(k2);// falsevar k3 = true && true;console.log(k3);// truevar k4 = true && 100;// 前者有值为true, 选择把后者的值赋给变量console.log(k4);// 100</script>
||
(逻辑或)表示条件两个或者以上,只要有一个条件成立(真的),结果就成立(是真),只有条件都为不成立(假),才是不成立(假)。
在 ||
(逻辑或)中,如果有一个为空(空字符串、未定义等),另一个有值,就把值赋给这个变量。
完整代码如下:
<script>console.log(true || false);// trueconsole.log(true || false || false || false);// trueconsole.log(false || false || false || false);// falseconsole.log(1 < 2 || 2 > 3 || 3 > 4 || 4 > 5);// truevar v1 = true || false;console.log(v1);// truevar v2 = false || true;console.log(v2);// truevar v3 = "" || "hello world";// 前者没有值,就把后者的值赋给变量console.log(v3);// 'hello world'var v4 = undefined || 123;console.log(v4);// 123</script>
! (取反运算符)表示取相反的逻辑值,也就是说,如果是表达式是真,!(表达式)就是假,如果表达式是假,!(表达式)就是真。
完整代码如下:
<script>console.log(true);// trueconsole.log(!true);// falseconsole.log(!false);// true// (100 可以表示有值,有值表示true, 在true前面加叹号表示取相反的值)console.log(!100);// false </script>
运算符优先级
在含多个运算符时,按照优先级进行计算,优先级越小,越先计算。
优先级 | 运算符 | 顺序 |
1 | 小括号 | () |
2 | 一元运算符 | ++、--、! |
3 | 算术运算符 | 先*/ 后 +- |
4 | 关系运算符 | >、>=、<、<= |
5 | 相等运算符 | ==、===、!=、!== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
相关文章:
JavaScript基础——JavaScript运算符
赋值运算符 算术运算符 一元运算符 三元/三目运算符 比较运算符 逻辑运算符 运算符优先级 在JavaScript中,常见的运算符可以包括赋值运算符、一元运算符、算术运算符(二元运算符)、三元/三目运算符、比较运算符、逻辑运算符等࿰…...
E23.【C语言】练习:不创建第三个变量实现两个整数的交换
目录 题目条件 思路1( -) 思路2 (^)(XOR) 往期推荐 1.题目条件 禁止使用以上代码 2.思路1: -运算 aab; ba-b; aa-b; 但这样有潜在的问题 :a,b存储的数字过大,ab可能超过范围 因此改用思路2…...
如何搭建一个web系统?
需求 搭建一个web系统。 框架 设计:墨刀 前端:Vue.js 后端:Java 算法:Python 数据库:时序数据库,介绍 部署:Jekins https://www.jenkins.io/ 文档管理:Teambition 项目管理:禅道 代码管理:Gitlab 开发流程 设计文档和原型文档,功能接口设计࿰…...
三十种未授权访问漏洞复现 合集( 二 )
未授权访问漏洞介绍 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历 目前主要存在未授权访问漏洞的有:NFS服务&a…...
C语言学习笔记[29]:函数①
函数 在C语言中,函数是一段可以完成特定功能的代码,它们可以被重复调用。 函数的分类: 库函数自定义函数 库函数 在C语言中,库函数是由系统提供的,用于完成特定功能的函数,这些函数被集合在一起&#…...
使用Springboot + netty 打造聊天服务之Nacos集群问题记录
目录 1、前言1.1、方法一1.2、方法二 2、方案二实战2.1、在netty服务里加上ws连接、中断事件2.2、在netty服务里加上消息服务 4、总结 使用Springboot netty 打造聊天服务系列文章 第一章 初始搭建工程 第二章 Nacos集群问题记录 1、前言 在使用Springboot Nacos Netty(Web…...
全网唯一!R语言顶刊配色包TheBestColors
与Matlab相比,R语言在绘图方面有着天然的优势。 比如在配色方面,R语言有各式各样现成的包,按理说配色这种事应该很方便才对。 但实际体验下来,发现似乎不是那么回事。 首先,你很难记住每个包的调用方法以及每种配色…...
链表题型思路错误总结
常见题目 206. 反转链表 关键点:定义前置指针。 在给cur.next复制前,需要定义好next节点防止断链。 public ListNode reverseList(ListNode head) {if (head null || head.next null) {return head;}ListNode pre null;ListNode cur head;while(cur…...
算法学习day28
一、寻找右区间(二分法) 题意:题目很容易理解 但是转换为二分法有点晦涩 给你一个区间数组 intervals ,其中 intervals[i] [starti, endi] ,且每个 starti 都 不同 。区间 i 的 右侧区间 可以记作区间 j ,并满足 startj > e…...
C语言基础题:迷宫寻路(C语言版)
1.题目描述 机器猫被困在一个矩形迷宫里。 迷宫可以视为一个n x m 矩阵,每个位置要么是空地,要么是墙。机器猫只能从一个空地走到其上、下、左、右的空地。 机器猫初始时位于(1,1)的位置,问能否走到(n,m)位置。 2.输入格式 第一行࿰…...
力扣-1两数之和2两数相加-2024/8/3
1、两数之和 解法一 暴力法(2个for循环) class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for ii in range(len(nums)):for jj in range(ii1, len(nums)):if nums[ii]nums[jj] target:return [ii,jj]解法二 哈希表法…...
简站WordPress主题 专业的WordPress建站服务商
简站WordPress主题是一款备受推崇的WordPress主题,以其简洁、实用、无插件和更安全的特性脱颖而出。以下是关于简站WordPress主题的一些详细分析: 简站WordPress主题采用了扁平化设计风格,界面简洁明了,这使得网站看起来更加专业…...
Final Shell for Mac 虚拟机连接工具【简单易操作,轻松上手】【开发所需连接工具】
Mac分享吧 文章目录 效果一、下载软件二、安装软件三、运行测试安装完成!!! 效果 一、下载软件 下载软件 链接:http://www.macfxb.cn 二、安装软件 三、运行测试 安装完成!!!...
Oracle JDK:版本、支持与许可
文章目录 版本支持许可BCLOTNNFTCFAQ其他OpenJDK和其他的JDK实现JDK、JRE、JVMJava SE、Java EE、Java ME版本 Oracle JDK的最新版本和历史版本的官方下载地址(可查询版本发行说明等信息):https://www.oracle.com/cn/java/technologies/downloads/ 常规版本(非LTS):每隔…...
大模型学习笔记 - LLM 之RLHF人类对齐的简单总结
LLM - RLHF人类对齐的简单总结 LLM-人类对齐 1. RLHF(Reinforcement Learning from Human Feedback, RLHF),基于人类反馈的强化学习2 奖励模型训练3 强化学习训练 3.1 PPO介绍3.2 进阶的RLHF的介绍 3.2.1. 过程监督奖励模型3.2.2. 基于AI反馈的强化学习3.2.3. 非强化学习的对齐…...
【从零开始一步步学习VSOA开发】 概述
概述 概念 VSOA(Vehicle SOA)是翼辉为了解决任务关键型系统不能适用当前微服务通信架构问题而设计的⼀个轻量级适用于任务关键领域的微服务通信架构,以方便开发者构建大型分布式松耦合软件系统,且支持并行开发。 特点 其主要特…...
小程序背景图片无法通过 WXSS 获取
问题:pages/index/index.wxss 中的本地资源图片无法通过 WXSS 获取 可以使用网络图片,或者 base64,或者使用标签。 将图片转换为base64,地址 base64图片在线转换工具 - 站长工具 在这里把要使用的图片转换一把,然后将得…...
CC++内存魔术:掌控无形资源
hello,uu们,今天呢我们来详细讲解C&C的内存管理,好啦,废话不多讲,开干 1:C/C内存分布 2:C语言中动态内存管理方式:malloc/calloc/realloc/free 3:C内存管理方式 3.1:new/delete操作内置类型 3.1.1:代码1 3.1.2:代码2 3.2:new和delete操作自定义类型 3.2.1:C语言创建…...
算法--初阶
1、tips 1.1、set求交集 {1,2,3} & {2,3} & {1,2} {2} 其实就是位运算, 只有set可以这样使用, list没有这种用法 {1,2,3} | {2,3, 4} | {1,2} {1, 2, 3, 4} 并集 1.2、*与** * 序列(列表、元组)解包,如果是字典,那…...
通过Java实现插入排序(直接插入,希尔)与选择排序(直接选择,堆排)
目录 (一)插入排序 1.直接插入排序 (1)核心思想: (2)代码实现(以从小到大排序为例): (3)代码分析: 2.希尔排序(…...
大型分布式B2B2C多用户商城7.0企业版源码分享【java语言、方便二次开发】
项目介绍 项目基于SpringBoot开发,运营端和商户端采用ElementVue,买家使用采用VueIviewnuxt服务端渲染。使用到的中间件有Redis、RabbitMQ、ElasticSearch、FastDFS、Mongodb等。主要功能包括有运营管理、商品管理、订单管理、售后管理、会员管理、财务…...
C++的结构体、联合体、枚举类型(一)
1.C++的结构体 2.C++的联合体 3.C++的枚举类型 1.C++的结构体 (1)C++中定义结构体变量,可以省略struct关键字 struct XX{…}; XX x;//定义结构体变量直接省略struct(2)C++结构体中可以直接定义函数,谓之成员函数(又叫方法)(3)在成员函数中可以直接访问该结构体的成员变…...
搭建高可用OpenStack(Queen版)集群(一)之架构环境准备
一、搭建高可用OpenStack(Queen版)集群之架构环境准备 一、架构设计 二、初始化基础环境 1、管理节点创建密钥对(方便传输数据) 所有控制节点操作 # ssh-keygen #一路回车即可 Generating public/private rsa key pair. Enter f…...
通过Stack Overflow线程栈溢出的问题实例,详解C++程序线程栈溢出的诸多细节
目录 1、问题说明 2、从Visual Studio输出窗口中找到了线索,发生了Stack Overflow线程栈溢出的异常 3、发生Stack Overflow线程栈溢出的原因分析 4、线程占用的栈空间大小说明 5、引发线程栈溢出的常见原因和场景总结 6、在问题函数入口处添加return语句&…...
LeetCode刷题笔记 | 3 | 无重复字符的最长子串 | 双指针 | 滑动窗口 | 2025兴业银行秋招笔试题 | 哈希集合
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 这是一道银行的面试题,就是简单?! LeetCode链接:3. 无重复字符的最长子串 1.题目描述 给定一个字符串 s ,…...
验证cuda和pytorch都按照成功了
要验证您的PyTorch是否能够调用CUDA,您可以执行以下步骤: 1. **检查CUDA是否可用**: 在Python中运行以下代码来检查CUDA是否可用: python import torch print(torch.cuda.is_available()) 如果输出为 True&…...
iOS开发如何自己捕获Crash
为了在iOS中捕获和处理未捕获的Objective-C异常和系统信号引起的崩溃,可以使用NSSetUncaughtExceptionHandler和标准的Unix信号处理机制来实现。这能帮助你记录绝大部分的崩溃信息。以下是详细的实现步骤和代码示例: 一、系统崩溃处理 通过NSSetUncaug…...
雪花算法(Snowflake Algorithm)
雪花算法(Snowflake Algorithm)是一种分布式唯一ID生成算法,主要用于生成全球唯一的ID,广泛应用于分布式系统中,例如在数据库中作为主键。这个算法最初由Twitter提出,并且被广泛使用在很多大规模系统中。有…...
〖任务1〗ROS2 jazzy Linux Mint 22 安装教程
前言: 本教程在Linux系统上使用。 目录 一、linux安装二、linux VPN安装三、linux anaconda安装(可选)四、linux ROS2 安装五、rosdep init/update 解决方法六、安装GUI 一、linux安装 移动硬盘安装linux:[LinuxToGo教程]把ubunt…...
图像增强:使用周围像素填充掩码区域
制作图像需要填充的掩码区域,对需要填充的位置的mask赋值非0,不需要填充赋值为0使用cv2.inpaint对图像掩码mask中非0元素位置的图像像素进行修复。从而实现使用周围像素填充掩码区域cv2.inpaint 是 OpenCV 库中的一个函数,用于图像修复(inpainting),即填充图像中的损坏区…...
中华人民共和国城乡住房建设部网站/产品推销
6-1 成员操作符in可以判断一个字符串是否是另一个字符串的一部分。返回true或false。 6-2 1 import string2 import keyword3 4 myInput raw_input("Please input the string: ")5 6 if len(myInput) 1:7 if myInput in string.ascii_letters or myInput _:8 …...
wordpress ftp 权限/今天的新闻最新消息
问:紫苹果装饰怎么样?有找紫苹果装修过的吗?答:首先找紫苹果装修的话,你一定要找正牌紫苹果,不要被冒牌的误导。名声大、口碑好的紫苹果装饰总部是在上海,目前在12座城市有14家直营公司…...
专业做公司logo的网站/seo泛目录培训
使用text-overflow:ellipsis对溢出文本显示省略号有两个好处,一是不用通过程序限定字数;二是有利于SEO。需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友好,因为标题实际上并未被截字,而是…...
做论坛网站赚钱吗/seo网站权重
php中文网最新课程每日17点准时技术干货分享1、foreach 效率更高,尽量用 foreach 代替 while 和 for 循环2、循环内部不要声明变量,尤其是对象这样的变量3、循环条件中使用函数4、在多重嵌套循环中,如有可能,应当将最长的循环放在…...
wow做宏的网站/农产品营销方案
新接手了一台电脑,沿用原来的账户名,但是想把密码改为我熟悉的密码,密码较短,在终端中没有sudo权限会提示: You must choose a longer password 解决这个问题,加上sudo权限即可: sudo passwd…...
哪里网站建设专业/营销推广方案怎么写
这要从 CPU 说起,CPU时能够执行一些基本操作的硬件,比如加减乘除读写内存、堆栈管理、跳转之类的基本操作。CPU要执行的下个动作是在内存中读取的二进制数据,所以最初的编程是编写这个二进制的程序,然后放到内存里让CPU执行(先不要问题怎么放…...