JavaScript初级——运算符

news2025/1/12 8:37:30

一、算数运算符

    1、运算符也叫操作符。通过运算符可以对一个或多个值进行运算,并获取运算结果。

         比如:typeof 就是运算符,可以获得一个值的类型,他会将该值的类型以字符串的形式返回

                                   (number、string、boolean、undefined、object)。

    2、算术运算符

          当对非Number类型的值进行运算时,会将这些值转换为Number然后再进行运算。

          任何值和NaN做运算都得NaN

①   +    ——可以对两个值进行加法运算,并将结果返回。

                     如果对两个字符串进行加法运算,则会做拼串操作,会将两个字符串拼接位一个字符串并返回结果。

                     任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。

                            ——我们可以利用这一特点,讲一个任意的数据类型转换为String,只需要为任意的数据类型 + 一个 “”(空串),即可将其转换为String,这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用 String()函数。

②  -      ——可以对两个值进行减法运算,并将结果返回。 

③  *      ——可以对两个值进行乘法运算,并将结果返回。

④  /      ——可以对两个值进行除法运算,并将结果返回。

⑤ %     ——取模运算(取余数)。

⑥  任何值做 -  *  /  运算时都会自动转换为Number我们可以利用这一特点做隐式的类型转换,可以通过为一个值  -0   、  *1    、 /1   来将其转换为Number,原理和Number()函数一样,使用起来更加简单。

二、一元运算符

    1、一元运算符,只需要一个操作数。

    2、有两个运算符:

          +   ——   正号,不会对数字产生任何影响。

          -    ——   负号,可以对数字进行负号的取反。

    3、对于非Number类型的值,它会将其先转换为Number,然后再运算。可以对一个其他的数据类型使用 + ,来将其转换为number,它的原理和Number()函数一样。

三、自增和自减

    1、自增  ++

① 通过自增可以使变量在自身的基础上增加1。

② 对于一个变量自增以后,原变量的值会立即自增1。

③ 自增分成两种:后++(a++)和前++(++a)。

                            无论是 a++ 还是++a ,都会立即使原变量的值自增1。

                            不同的是 a++ 和 ++a 的值不同  ——  a++ 的值等于原变量的值(自增前的值)

                                                                              ——  ++a 的值等于新值(自增后的值)

    2、自减  --

① 通过自减可以使变量在自身的基础上减1。

② 自减分成两种: 后 --(a--) 和 前 --(--a)。无论是 a-- 还是 --a 都会立即使原变量的值自减1。

                             不同的是 a-- 和 --a 的值不同   ——   a-- 是变量的原值(自减前的值)

                                                                            ——   --a 是变量的新值(自减后的值)

四、逻辑运算符(JS中提供了三种逻辑运算符)

    1、非       !

①  ! 可以用来对一个进行非运算。

② 所谓的非运算就是对一个布尔值进行取反操作,即 true 变成 false ,false 变成 true 。

③ 如果对于一个值进行两次取反,它不会变化。

④ 如果对非布尔值进行运算,则会将其转换为布尔值,然后再进行取反操作。所以我们可以利用该特点,讲一个其他的数据类型转换为布尔值:可以为一个任意数据类型去两次反,将其转换为布尔值,原理和 Boolean()函数一样。

    2、与       &&

①  && 可以对符号两侧的值进行与运算并返回结果。

② 运算规则:   

                            —— 两个值中只要有一个为 false 就返回 false

                            —— 只有两个值都为 true 时,才会返回 true

③ JS中的“与”属于短路的与,如果第一个值为 false ,则不会看第二个值。

    3、或        ||

① || 可以对符号两侧的值进行或运算并返回结果。

② 运算规则:

                         ——  两个值中只要有一个 true ,就返回 true

                         ——  如果两个值都为 false  ,才会返回 false

③ JS中的“或”运算时域短路的或,如果第一个值为 true ,则不会检查第二个值。

    4、非布尔值的与或运算

① 对于非布尔值的与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值。

② 与运算:

                  —— 如果第一个值为 true ,则必然返回第二个值

                  —— 如果第一个值为 false ,则直接返回第一个值

③ 或运算:

                           —— 如果第一个值为 true ,则直接返回第一个值

                           —— 如果第一个值为 false ,则返回第二个值

五、赋值运算符

    1、   =      可以将符号右侧的值赋值给左侧的变量。

    2、  +=      a+=5等价于a=a+5。

    3、   -=      a-=5等价于a=a-5。

    4、   *=      a*=5等价于a=a*5。

    5、   /=       a/=5等价于a=a/5。

    6、  %=      a%=5等价于a=a%5。

六、关系运算符

    1、通过关系运算符可以比较两个值之间的大小关系,如果关系成立返回 true ,如果关系不成立返回 false 。

    2、     >      大于号

                       —— 判断符号左侧的值是否大于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    3、   >=     大于等于号

                      —— 判断符号左侧的值是否大于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    4、    <      小于号

                      —— 判断符号左侧的值是否小于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    5、    <=    小于等于号

                      —— 判断符号左侧的值是否小于或等于右侧的值。如果关系成立返回 true ,如果关系不成立返回 false 。

    6、非数值的情况

① 对于非数值进行比较时,会将其转换为数字然后再进行比较。

② 如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中字符的Unicode编码。

③ 比较字符编码时是一位一位进行比较的,如果两位一样,则比较下一位,所以借用它来对英文进行排序,比较中文没有意义。

    7、任何值和NaN做任何比较都是 false

    8、如果比较的两个字符串是数字,则可能会得到不可预期的结果,所以在比较两个字符串的数字时,一定要转型。

七、Unicode编码表

    1、在JS中的字符串中需要使用转义字符输入Unicode编码。

          语法格式: \u 四位编码                   —— 编码为16进制

    2、在网页中使用Unicode编码

          语法格式: &#编码;                      —— 编码为10进制

八、相等运算符

    1、相等运算符用来比较两个值是否相等,如果相等会返回 true ,否则会返回 false 。

    2、使用 == 来做相等运算

                           —— 当使用 == 来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型,然后再比较。

    3、 undefined 衍生自 null ,所以这两个值做相等判断时,会返回 true

    4、 NaN不和任何值相等,包括他本身

    5、判断某个变量的值是否为 NaN ,可以通过 isNaN()函数 来判断,如果该值是 NaN 则返回 true ,否则返回 false 。

    6、使用 = 做不相等运算

                          —— 不相等用来判断两个值是否不相等,如果不相等返回 true ,相等返回 false 。

                          —— 不相等也会对变量进行自动的类型转换,如果转换后相等也会返回 false 。

    7、使用 === 来做全等运算

                          —— 用来判断两个值是否全等,他和相等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 false 。

    8、使用 == 来做不全等运算

                          —— 用来判断两个值是否不全等,和不等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同直接返回 true 。

九、条件运算符

    1、条件运算符也叫三元运算符。

    2、语法:

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

    3、执行流程:条件运算符在执行时,首先对条件表达式进行求值,如果该值为 true ,则执行语句1,并返回执行结果;如果该值为 false ,则执行语句2,并返回执行结果。

    4、如果条件的表达式的求值结果使一个非布尔值,会将其转换为布尔值然后再运算。

十、运算符优先级

    1、和数学一样,在JS中运算符也有优先级,比如:先乘除,后加减。

    2、JS中运算符优先级表如下,在表中越靠上优先级越高,优先级越高越先计算,如果优先级一样,则从按照表达式左往右计算。如果遇到优先级不清楚可以使用()来改变优先级

十一、代码块

    1、我们的程序是由一条一条语句构成的,语句是按照自上向下的顺序一条条执行的。

    2、在JS中可以使用 { } 来为语句进行分组。同一个 { } 中的语句我们称为是一组语句,他们要么都执行,要么都不执行。

    3、一个 { } 中的语句我们也称为一个代码块,在带那块的后边就不用再编写 ; 了。

    4、在JS中的代码块,只是具有分组的作用,没有其他的用途,代码块内的内容在外部是完全可见的

本文分享到此结束,下一节继续分享JavaScript初级学习的语句的内容。欢迎大家一同讨论学习。

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

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

相关文章

三防平板:现代生产效率与安全的革新者

三防加固工业平板电脑以其独特的防水、防尘、防摔性能&#xff0c;成为复杂生产环境下可靠的工作伙伴。无论是高温、高湿的恶劣环境&#xff0c;还是充满粉尘与振动的车间&#xff0c;三防平板电脑均能保持稳定运行&#xff0c;显著降低硬件故障率&#xff0c;确保生产线的平稳…

AI周报(8.11-8.17)

AI应用-小白&#xff0c;你在说什么呢&#xff1f;AI宠物翻译Traini Traini是由中国连续创业者孙邻家&#xff08;Arvin Sun&#xff09;和刘嘉懿&#xff08;Jack Liu&#xff09;于2022年在美国硅谷联合创立的全球宠物在线培训平台和宠物共情AI应用。Traini也在今年5月完成了…

MyBatis框架连接数据库-初级

MyBatis 的主要功能是帮助持久层管理数据库&#xff0c;接下来我们利用 MyBatis 连接一下我们的数据库&#xff0c;实现入门程序 前期准备 使用环境&#xff1a; jdk 17 maven 3.6.1 mybatis 3.5.10 mysql 8.0.31 idea 2021.1 需要准备&#xff1a; 一个 Maven 工程模块…

uniapp-部分文件中文乱码

一、问题 在开发时遇到&#xff0c;部分页面的中文显示乱码&#xff0c;如图 搜索了一下解决方法&#xff0c;这里记录一下 二、问题原因&#xff1a; 页面的编码格式不是 utf-8 造成的 三、解决方法 打开出现乱码页面选择编译器左上角的文件 > 以指定编码重新打开 选择U…

【存储学习笔记】4:快照(Snapshot)技术的实现方式

1 快照 1.1 动机 在上一篇《备份》里提到&#xff0c;热备份就是在执行操作时&#xff0c;服务器需要正常处理来自用户或应用对数据的更新&#xff0c;这样能够保证数据7*24小时可用&#xff08;在很多服务里这是必要的&#xff09;。 而热备份的困难就是如何保证数据的一致…

判断点B是否在线段AC上?

问题 判断点B是否在线段AC上&#xff1f; 解决方法 1).使用矩阵的秩解决 矩阵的秩代码 #include <iostream> #include <vector> #include <cmath>class Matrix { public:std::vector<std::vector<double>> data;int rows, cols;Matrix(int r,…

电子合同如何在线签?9大协助工具软件

文章介绍了以下几个工具&#xff1a;e签宝、上上签、契约锁、法大大、合同管家、Concord、爱签、微签、PandaDoc。 在选择合适的电子签名工具时&#xff0c;很多企业面临着如何确保合规、提高效率以及优化用户体验的挑战。市场上的众多选项使得决策过程变得更加复杂。但是&…

【Kubernetes】虚拟 IP 与 Service 的代理模式

虚拟 IP 与 Service 的代理模式 1.userspace 代理模式2.iptables 代理模式3.IPVS 代理模式 由于 Service 的默认发布类型是 ClusterlP&#xff0c;因此也可以把 ClusterIP 地址叫作 虚拟 IP 地址。在 Kubernetes 创建 Service 时&#xff0c;每个节点上运行的 kube-proxy 会自动…

百度地图SDK Android版开发 6 显示覆盖物

百度地图SDK Android版开发 6 显示覆盖物 前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例Text示例效果图 Marker的更多属性常用属性交互碰撞动画其它属性 折线的更多属性常用属性交互其它 多边形的更多属性常用属性交互其它 Arc的更多属…

keepalive原理详解及应用

目录 一、高可用集群 1.1 什么是keepalived 1.2 什么是VRRP协议 二、Keepalived 部署 2.1 keepalived 简介 2.2 keepalived 框架 2.3 实验环境搭建 2.4 Keepalived 安装 2.5 Keepalived 配置 2.5.1 虚拟路由配置 2.5.2 独立日志 2.5.3 独立子配置文件 三、Keepali…

Unity动画模块 之 3D Rig页签

​本文仅作笔记学习和分享&#xff0c;不用做任何商业用途本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 1.Rig页签 Rig 选项卡 - Unity 手册&#xff0c;rig是设置骨骼与替身系统的&#xff0c;工作流程如下 Avatar是什么…

【算法】弗洛伊德(Floyd)算法求最短路径

目录 1.弗洛伊德&#xff08;Floyd&#xff09;算法介绍 2.弗洛伊德算法图解分析 2.1思路&#xff1a; 2.2图和矩阵的准备 2.3弗洛伊德算法的步骤&#xff1a; 2.4疑问 3.弗洛伊德算法的代码实现 3.1创建图并显示距离表与前驱表 3.2完整代码 1.弗洛伊德&#xff08;Flo…

数据结构stack (笔记)

文章目录 1. 概念理解易混淆内容 2. 时间复杂度3. 实现方式4. 应用5. 内容出处 1. 概念理解 stack(中文名&#xff1a;堆栈、栈)&#xff1a;虽然它叫堆栈&#xff0c;但是它其实指的是栈&#xff0c;跟堆没啥关系。 栈的特性&#xff1a;先进后出、后进先出(这个过程就…

【STL】红黑树(插入、删除底层实现)

目录 红黑树简介 红黑树框架构建 构造函数 析构函数 四种旋转逻辑&#xff08;左单旋&#xff0c;右单旋&#xff0c;左右双旋&#xff0c;右左双旋&#xff09; 左右双旋与右左双旋 左单旋 右单旋 红黑树的插入 Insert 插入节点的颜色 红黑树插入的三种情况 代码…

Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task03笔记

Datawhale官方的Task3链接&#xff1a;Task03 往期Task1、Task2链接&#xff1a;Task01&#xff0c; Task02 【学习者手册】&#xff1a;链接直达 【QA文档】&#xff1a;链接直达 【赛事官网】&#xff1a;链接直达 ComfyUI ComfyUI是一个基于深度学习的图像生成软件&…

鸿萌数据恢复服务:SQL Server 中的“PFS 可用空间信息不正确”错误

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时&#xff0c;鸿萌是国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商&#xff0c;为专…

【教学类-58-10】黑白三角拼图08(参考图+操作卡+黑白块,适合个别化)

背景需求&#xff1a; 前期做了一套适合集体操作的绘画“黑白三角” 【教学类-58-09】黑白三角拼图07&#xff08;1页3张黑白的白点卡片&#xff0c;一种宫格36张&#xff0c;适合一个班级一次操作&#xff09;-CSDN博客文章浏览阅读1k次&#xff0c;点赞30次&#xff0c;收藏…

面向自动驾驶保证车辆转向稳定性的模型预测控制

摘 要 车辆智能化是当前和未来汽车发展的主要方向和核心技术之一。随着车辆智能化水 平的提高&#xff0c;自动驾驶等级从无自动驾驶向完全自动驾驶提升。在自动驾驶的人机协同控制 和完全自动驾驶阶段&#xff0c;由于人类驾驶员在动态驾驶任务中的参与程度不同&#xff0c;…

23. 机盒通信

1. 概述 耳机和充电盒,采用机盒通信的方式,完成通信和充电。受限于耳机上的触电,机盒通信采用单线模式。 注:耳机只做应答,不主动发起通信 2. 硬件连接 由于bes2700外置SY5501的电源管理芯片,实际上串口通信,通过SY5501进行转发。 充电盒 -> SY5501 -> bes27…

windows安装boost后没有b2.exe(无法执行b2)

原因&#xff1a;如果你是在官网下载的.exe文件进行的boost安装&#xff0c;那么就不需要再执行bootstrap.bat&#xff0c;也因此不会有b2.exe 链接&#xff1a;官方网址下载 通过.exe安装boost并配置环境变量之后就可以直接使用了 如果你仍希望有b2.exe&#xff0c;那么双击执…