【JavaScript速成之路】JavaScript运算符

news2025/7/22 5:21:04

在这里插入图片描述

📃个人主页:「小杨」的csdn博客
🔥系列专栏:【JavaScript速成之路】

🐳希望大家多多支持🥰一起进步呀!


文章目录

  • 前言
    • 运算符
      • 1,算术运算符
      • 2,递增递减运算符
      • 3,比较运算符
      • 4,逻辑运算符
      • 5,位运算符
      • 6,赋值运算符
      • 7,三元运算符
      • 8,运算符优先级
  • 结语


前言

📜前言:小杨在上一篇带着大家一起学习了JavaScript中的数据类型转换,想必大家对JavaScript数据类型转换已经有所了解了,那么今天我们将继续带着大家学习一下JavaScript中的运算符的相关知识,希望大家收获多多!


运算符

1,算术运算符

运算符运算示例结果
+7+29
-7-25
*7*214
/7/23
%取模7%21

知识点:

  • 使用“+”和“-”可以表示正数和负数。
  • 进行四则混合运算时,运算顺序遵循“先乘除后加减”的原则。
  • 在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。
  • 在开发时尽量避免利用浮点数进行运算,因为有可能会因JavaScript的精度问题导致结果的偏差。
  • 因此为避免上述问题,我们可以将参与运算的小数转换成整数,计算后再将数转换为小数即可。

2,递增递减运算符

运算符运算运算符运算
num++后置++++num前置++
num–后置––num前置–

知识点1:前置和后置的区别:前置返回的是计算后的结果,后置返回的则是计算前的结果。

为了更好地理解上述知识点,示例如下:

<script>
    var a = 1;
    var b = 1;
    //前置递增用法
    console.log(++a);  
    console.log(a);

    //后置递增用法
    console.log(b++); 
    console.log(b);
</script>

示例结果:

image-20221008171940355

知识点2:递增和递减运算符的优先级高于“+”,“-”等运算符,在表达式进行计算时,应注意运算顺序。

为了更好地理解上述知识点,示例如下:

<script>
    var a = 12;
    var b = ++a + 2;       //a = 13 , b = 15
    console.log(b);
    var c = b++ + 2;       //c = 17 , b = 16
    console.log(c);
    var d = c++ + ++a;     //a = 14 , d = 31 , c = 18
    console.log(d);
</script>

示例结果:

image-20221008172844847


3,比较运算符

运算符运算示例结果
>大于1>1false
<小于1<1false
>=大于或等于1>=1true
<=小于或等于1<=1true
==等于1==1true
!=不等于1!=1false
===全等1===‘1’false
!==不全等1!==‘1’true

知识点:

  • ==和 != 运算符在进行比较时,如果比较的两个数据的类型不同,系统会自动将其转换成相同的类型再进行比较。
  • ===和!==运算符在进行比较时,不仅仅要比较的值是否相同,还需要比较数据的类型是否相同。

为了更好地理解上述语法,示例如下:

<script>
    console.log('13' == 13);
    console.log('13' != 13);
    console.log('13' === 13);
    console.log('13' !== 13);
    console.log('13' === '13');
</script>

示例结果:

image-20221008182923646


4,逻辑运算符

运算符运算示例结果
&&a && ba与b都为true,结果为true,否则为false
||a || ba与b中至少有一个为true,结果为true,否则为false
!! a如果a为true,结果为false,否则相反

知识点:

  • 使用逻辑运算符运算时,是按照从左到右的顺序进行求值的,需特别注意是否出现“短路”的情况。
    • 使用&&连接两个表达式,语法为:表达式1&&表达式2。如果表达式1为true,则返回表达式2的值;如果表达式1为false,则返回false。
    • 使用 || 连接两个表达式,语法为:表达式1||表达式2。如果表达式1为true,则返回true;如果表达式1为false,则返回表达式2的值。

为了更好地理解上述语法,示例如下:

<script>
    //&& 短路情况演示
    console.log(123 && 456);
    console.log(0 && 456);
    //|| 短路情况演示
    console.log(123 || 456);
    console.log(0 || 456);
</script>

示例结果:

image-20221008235130333


5,位运算符

位运算符用来对数据进行二进制运算,将参与运算的操作数视为由二进制(0和1)组成的的32位的串,运算时会将二进制数的每一位进行运算。

运算符名称示例运算方式
&按位与a & b只要对应二进制位都为1,运算结果为1,否则为0
|按位或a | b只要对应二进制位中有1,运算结果为1,否则为0
~按位非a ~ b0的取反值为1,1的取反值为0
^按位异或a ^ b如果对应二进制位相同,运算结果为0,否则为1
<<左移a << b将a左移b位二进制位,右边空位补0,左边被移出位舍去
>>右移a >> b将a右移b位二进制位,左边空位根据原数的符号位补0或1,正数补0,负数补1
>>>无符号右移a >>> b将a右移b位二进制位,左边最高位补0,右边被移出位舍去,不考虑正负数

为了更好地理解上述位运算符的使用,示例如下:

<script>
    console.log(15 & 8);        
    //  0000000000000000000000000001111 
    //& 0000000000000000000000000001000
    //= 0000000000000000000000000001000

    console.log(15 | 8);
    //  0000000000000000000000000001111 
    //| 0000000000000000000000000001000
    //= 0000000000000000000000000001111

    console.log(~ 15); 
    //~  0000000000000000000000000001111 
    //=  1111111111111111111111111110000  补码
    //   1111111111111111111111111101111  反码
    //   1000000000000000000000000010000  原码

    console.log(15 ^ 8);        
    //  0000000000000000000000000001111 
    //^ 0000000000000000000000000001000
    //= 0000000000000000000000000000111

    console.log(7 << 2);
    //  0000000000000000000000000000111 
    //= 0000000000000000000000000011100

    console.log(7 >> 2);
    //  0000000000000000000000000000111 
    //= 0000000000000000000000000000001
    
    console.log(7 >>> 2);       
    //  0000000000000000000000000000111 
    //= 0000000000000000000000000000001
</script>

示例结果:

image-20221009095300291


6,赋值运算符

运算符运算示例结果
=赋值a = 3a=3
+=加并赋值a += 3a = a + 3
-=减并赋值a -= 3a = a - 3
*=乘并赋值a *= 3a = a * 3
/=除并赋值a /= 3a = a / 3
%=求模并赋值a %= 3a = a % 3
+=连接并赋值a += ‘abc’a = a + ‘abc’
<<=左移并赋值a <<= 3a = a << 3
>>=右移并赋值a >>= 3a = a >> 3
>>>=无符号右移并赋值a >>>= 3a = a >>> 3
&=按位与并赋值a &= 3a = a & 3
^=按位异或并赋值a ^= 3a = a ^ 3
|=按位或并赋值a |= 3a = a | 3

7,三元运算符

三元运算符是一种需要3个操作数的运算符,运算的结果根据给定条件决定。

语法:条件表达式 ?表达式1:表达式2

规则:先求条件表达式的值,若结果为true,则返回表达式1的执行结果,否则返回表达式2的执行结果。

为了更好地理解上述语法,示例如下:

<script>
    var age = 19;
    var ret = age >= 18 ? '成年' : '未成年';
    console.log(ret);
</script>

示例结果:

image-20221009100821507


8,运算符优先级

优先级运算符顺序
1小括号( )
2一元运算符++ – !
3算数运算符先* / % 后 + -
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符先&& 后 ||
7赋值运算符=
8逗号运算符

为了更好地理解上述运算符优先级语法,示例如下:

<script>
    var a = 3 > 5 && 3 < 5 && 7 == 4;  //false && true && false = false
    console.log(a);

    var b = 3 > 5 || 3 < 5 || 7 == 4;  //false || true || false = true
    console.log(b);

    var c = !a || 3 < 5 && 7 === 4;   //true || true && false = true
    console.log(c);
</script>

示例结果:

image-20221009103018508


结语

这就是本期博客的全部内容啦,想必大家已经对JavaScript运算符的相关内容有了全新地认识和理解吧,如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞👍,评论✍,收藏📖),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!

在这里插入图片描述


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

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

相关文章

VMware ESXi 7.0 Update 3k - 领先的裸机 Hypervisor (sysin Custom Image)

VMware ESXi 7.0 Update 3k - 领先的裸机 Hypervisor (sysin Custom Image) VMware ESXi 7.0 Update 3k Standard & All Custom Image for ESXi 7.0 U3k Install CD 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-7-u3/&#xff0c;查看最新版。原创作品…

程序员必备的软技能-金字塔原理拆解(上)

原书 290千字&#xff0c;本文预计 14千字&#xff0c;拆解比 20&#xff1a;1&#xff0c;预计阅读时长 15分钟序言日常工作中&#xff0c;常常因为思维、表达方式不对产生不想要的结果&#xff1a;写了一个小时的周报&#xff0c;领导却不满意&#xff1f;跟团队讲了半天自己…

SWMM从入门到实践教程 01 SWMM软件介绍

文章目录1 软件介绍2 软件面板2.1 主菜单2.1.1文件菜单&#xff08;File&#xff09;2.1.2 编辑菜单&#xff08;Edit&#xff09;2.1.3 视图菜单&#xff08;View&#xff09;2.1.4 工程菜单&#xff08;Project&#xff09;2.1.5 报告菜单&#xff08;Report&#xff09;2.1.…

VIAVI唯亚威CellAdvisor 线缆和天线分析仪

CellAdvisor 线缆和天线分析仪利用一种基于云功能的轻便仪器中的射频/光功率计&#xff0c;提供了适用于行扫描测量和光纤检测的集成解决方案&#xff0c;以供在基站安装和维护期间使用。 CellAdvisor™ 线缆和天线分析仪 JD723C/JD724C/JD725C/JD726C 无线网络中的大多数问题…

诈金花的概率

游戏使用一副除去大小王的扑克牌&#xff0c;共4个花色52张牌。 1、豹子&#xff08;AAA最大&#xff0c;222最小&#xff09;。2、同花顺&#xff08;AKQ最大&#xff0c;A23最小&#xff09;。3、同花&#xff08;AKQ最大&#xff0c;352最小&#xff09;。4、顺子&#xff…

仿Mybatis手写持久层框架

文章目录一、持久层框架分析1. JDBC操作数据库_问题分析2. JDBC问题分析&解决思路&#xff08;1&#xff09;加载驱动&#xff0c;获取链接&#xff08;2&#xff09;定义sql、设置参数、执行查询&#xff08;3&#xff09;遍历查询结果集3. 自定义持久层框架_思路分析二、…

黑马《数据结构与算法2023版》正式发布

有人的地方就有江湖。 在“程序开发”的江湖之中&#xff0c;各种技术流派风起云涌&#xff0c;变幻莫测&#xff0c;每一位IT侠客&#xff0c;对“技术秘籍”的追求和探索也从未停止过。 要论开发技术哪家强&#xff0c;可谓众说纷纭。但长久以来&#xff0c;确有一技&#…

Feign、Ribbon、Hystrix

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Feign、Ribbon、Hystrix ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林在…

TensorFlow-Keras - FM、WideAndDeep、DeepFM、DeepFwFM、DeepFmFM 理论与实战

目录 一.引言 二.浅层模型概述 1.LR 2.FM 3.FMM 4.FwFM 5.FmFM 三.常用推荐算法实现 Pre.数据准备 1.FM 2.WideAndDeep 3.DeepFM 4.DeepFwFM 5.DeepFmFM 四.总结 1.函数测试 2.函数效果与复杂度对比[来自FmFM论文] 3.More 一.引言 推荐系统中常见的 CTR 模型…

ONLYOFFICE中的chatGPT 是如何编写毕业论文以及翻译多种语言的

前言 chatGPT这款软件曾被多个国家的大学禁用&#xff0c;我们也多次在网上看到chatGPT帮助应届毕业生编写毕业答辩论文&#xff0c;但是这款软件目前还没有在国内正式上线&#xff0c;ONLYOFFICE7.3版本更新后呢&#xff0c;就添加了chatGPT该功能&#xff0c;并且正常使用。 …

springboot+vue.js学生作业管理系统idea java

由于学校教学功能的特殊定位&#xff0c;致使教师和学生必须在除了简单的师生区别外&#xff0c;还有合作意味的关系。学生上交作业和老师批改作业&#xff0c;这本身除了学习交流外&#xff0c;还是一个合作的范畴。所以&#xff0c;这其中的信息管理流程&#xff0c;需要以一…

SpringBoot中获取wav音频文件的属性

前言 wav文件定义 WAV 文件是以 WAVE 格式保存的音频文件&#xff0c;这是一种用于存储波形数据的标准数字音频文件格式。WAV 文件可能包含具有不同采样率和比特率的音频记录&#xff0c;但通常以 44.1 kHz、16 位、立体声格式保存&#xff0c;这是用于 CD 音频的标准格式。 …

在React项目中引入字体文件并使用

一、背景 设计稿里某些文字所用的字体&#xff0c;系统默认不支持。 比如设计需要的这个字体&#xff1a;EmerlandRegular&#xff0c;即使在css里将文字字体设置为他们&#xff0c;实际效果也显示不出来。 二、现象及原因 1、样式 2、期待效果 3、实际效果 实际上是因为这个…

java设计模式之装饰器设计模式

介绍 装饰器设计模式是一种结构型设计模式&#xff0c;它允许动态地将行为添加到对象中&#xff0c;而无需在对象的类中使用子类化。它允许您通过将对象封装在一个具有新行为的对象中来动态地修改对象的行为。 这种模式是基于组合的思想&#xff0c;而不是继承。 可动态地将责…

CFS三层内网渗透

目录 环境搭建 拿ubuntu主机 信息收集 thinkphp漏洞利用 上线msf 添加路由建立socks代理 bagecms漏洞利用 拿下centos主机 msf上线centos 添加路由&#xff0c;建立socks代理 拿下win7主机 环境搭建 设置三块虚拟网卡 开启虚拟机验证&#xff0c;确保所处网段正确&a…

展会邀约 | 昂视与您相约BTF第12届上海锂电展

BTF第12届上海国际新能源锂电展将于3月7日在上海新国际博览中心举办。此次展会以“锂想动力&#xff0c;共创未来”为主题&#xff0c;汇聚行业内一众翘楚企业与专业观众&#xff0c;为各位展商以及观众提供专业的锂电交流平台&#xff0c;了解与碰撞新产品、新技术与解决方案&…

APISIX网关系列之Dashboard配置路由(二)

APISIX网关系列之Dashboard配置路由(二) 1.概述 APISIX作为系列介绍&#xff0c;将它所有的功能按照职责划分输出到每篇文章中。 上篇文章作为系列的开篇文章对APISIX进行了分析和安装介绍&#xff0c;查看详情地址&#xff1a;https://blog.csdn.net/m0_38039437/article/de…

【经典数据结构OJ讲解】你知道如何用两个队列实现一个栈,如何用两个栈实现一个队列吗?

目录 0.前言 1.回顾什么是队列和栈 2.如何用两个队列实现一个栈 2.1思路讲解 2.2按照思路实现仿生栈的各接口 2.2.1栈的初始化 2.2.2栈的销毁 2.2.3栈的插入 2.2.4栈的删除 2.2.5 栈的栈顶数据 2.2.6 判断当前栈是否为空 3.如何用两个栈实现一个队列 3.1 思路分析…

梯度下降优化器:SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam -> AdamW

目录 1 前言 2 梯度概念 3 一般梯度下降法 4 BGD 5 SGD 6 MBGD 7 Momentum 8 SGDM&#xff08;SGD with momentum&#xff09; 9 NAG(Nesterov Accelerated Gradient) 10 AdaGrad 11 RMSProp 12 Adadelta 13 Adam 13 Nadam 14 AdamW 15 Lion&#xff08;EvoLve…

js 实现 Logo(图片)根据图片后面的图片颜色而变化成相反的颜色【解决logo固定后 会出现与不同板块的颜色相同导致于看不清logo的情况】

效果展示&#xff1a; <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta http-equiv"X-UA-Compatible" content"ieedge"><style type"text/css…