Loading...

学习有关javascript的相关知识,体验js带来的网页视觉冲击力

当前位置:首页 > JavaScript

JavaScript运算符类型与核心使用规则详解

更新时间:2026-11-03 09:03
JavaScript运算符类型与核心使用规则详解

JavaScript作为前端开发核心脚本语言,内置多类不同功能的运算符,熟练掌握各类运算符的特性、类型转换逻辑与结合规则,能够帮助开发者编写规范且稳定的代码,减少隐式转换引发的异常问题。

一、JavaScript运算符基础分类

按照功能与使用场景划分,JavaScript常用运算符可以分为三大类别,覆盖日常开发绝大多数运算需求。

基础运算类包含算术运算符、等同与全同运算符、比较运算符;按运算目的可划分为字符串运算符、逻辑运算符、位运算符与赋值运算符;除此之外还包含多种特殊功能运算符,比如条件运算符、typeof类型检测运算符、new对象创建运算符、delete删除运算符、void运算符以及逗号运算符。

各类运算符对应符号如下:

算术运算符:+ 、 - 、* 、 / 、 % 、一元取反- 、自增++ 、自减--

等同与全同运算符:== 、 ===、 != 、 !==

比较运算符:< 、 > 、 <= 、 >=

字符串运算符:< 、 > 、 <= 、 >= 、 = 、 +

逻辑运算符:&& 、 ||、 !

赋值运算符:=、 +=、 *=、 -=、 /=

二、JavaScript运算符通用核心规则

使用JavaScript运算符首先要关注操作数的数据类型与返回值类型,每一种运算符都会预期传入的操作数符合对应数据类型规范。

正常情况下字符串无法直接执行乘法运算,比如"a" * "b"属于非法表达式;但引擎具备隐式类型转换机制,在可转换的场景下会自动调整数据类型,例如"3" * "5"会被自动转为数字3和5进行计算,最终返回数字类型的15,而非字符串"15"。

其中加号+的行为会随着操作数类型变化而改变:两个字符串相加会执行拼接操作,比如"a" + "b"得到"ab","5" + "6"得到"11";字符串与数字相加时,数字会转为字符串再完成拼接,比如"a" + 5得到"a5","1" + 0得到"10";仅当两侧都是数字时,才执行数值加法,比如5 + 5得到10。

同时需要注意运算符结合性,部分运算符遵循从左到右的结合顺序,另一部分则遵循从右到左的规则。例如w = a + b + c等价于w = (a + b) + c;连续一元取反w = ---b等价于w = -(-(-b));连续赋值w = a = b = c等价于w = (a = (b = c))。一元运算符、赋值运算符与三元条件运算符,默认采用从右向左的结合规则。

三、JavaScript算术运算符详细规则

JavaScript算术运算符负责数值计算与特殊场景的拼接处理,每种符号都有明确的转换与运算逻辑。

加号+同时承担数值加法与字符串拼接两种作用,只要两个操作数中有一个是字符串,引擎就会把另一个值转为字符串后拼接;如果其中一个操作数是对象,则会先将对象转换为原始值,再根据结果类型判断执行加法还是拼接。

减号-、乘号*、除号/在遇到非数字类型操作数时,会优先将其转换为数字再执行数学运算。由于JavaScript中所有数字都以浮点型存储,除法运算结果始终为浮点数,比如5 / 2结果为2.5;除数为0时会返回正无穷或负无穷,0除以0则返回NaN。

取模运算符%用于计算两个数相除后的余数,若操作数不是数字会先完成类型转换;一元取反运算符-会对数值取反,非数字值同样会先转为数字。

自增++与自减--运算符要求操作数必须是变量、数组元素或者对象属性,非数字类型会先进行转换。前置自增会先修改变量值,再参与表达式计算;后置自增则先返回变量原始值,再修改变量本身。

示例:变量i赋值为1时,执行j = ++i,i会先变为2,最终i和j的值都为2;若执行j = i++,会先把1赋值给j,再将i修改为2,最终i为2、j为1,自减运算符的执行逻辑与自增完全一致。

四、等同与全同运算符判断逻辑

在JavaScript中,等同==与不等同!=运算符用于比较两个值,最终返回布尔类型结果。比较数字、字符串、布尔值时直接对比值本身,只有存放的值完全一致才判定相等;而比较对象、数组、函数时对比的是引用地址,只有两个变量指向同一个内存对象才判定相等,即使两个数组元素完全一致,属于不同引用也不相等。

当两个操作数类型不同时,==会先进行隐式类型转换:数字与字符串比较时,字符串转为数字;布尔值true转为1、false转为0;对象与数字或字符串比较时,会先调用valueOf方法,无法得到原始值再调用toString方法;null和undefined二者相等,其余特殊类型组合无法判定相等。

类型统一后,同类型字符串按逐位字符对比,数字直接比较数值,NaN与任何值包括自身都不相等;两个布尔值同为true或同为false则相等;引用类型必须指向同一个对象、函数或数组才相等;两个null或两个undefined判定相等。!=运算符的判断结果与==完全相反。

全同===与非全同!==不会触发隐式类型转换,只有两个操作数类型和值完全一致才会返回true,类型不同直接返回false;!==则在类型或值任意一项不同时返回true。

五、比较与字符串运算符使用规范

JavaScript比较运算符用于对比两个值的大小关系,返回布尔值,支持<、>、<=、>=四种符号。运算过程中非数字、非字符串类型会自动转换为数字或字符串再进行比较。

若两个操作数都是数字或可转为数字,则按数值大小对比;都是字符串或可转为字符串,则按照字符编码顺序排序;字符串与数字混合比较时,字符串会转为数字;无法转换为两种基础类型时,比较结果返回false。

JavaScript没有专门的字符串运算符,而是依靠通用运算符适配字符串场景。加号负责字符串拼接,存在数字时会先把数字转为字符串再拼接;大小比较运算符会按照字符编码排序,大写字母编码顺序排在小写字母之前。

加号的运算结果还受计算顺序影响,比如1 + 2 + "var"先执行数值加法得到3,再拼接字符串得到"3var";"var" + 1 + 2会先完成字符串与1的拼接,再继续拼接2,最终得到"var12"。

六、逻辑运算符特性与使用注意事项

JavaScript逻辑运算符包含逻辑与&&、逻辑或||、逻辑非!,常配合比较运算符实现复杂条件判断。

当两侧都是布尔值时,逻辑与仅在两个值都为true时返回true,否则返回false。实际运行中&&会先判断左侧表达式的布尔结果,左侧为false时直接返回左侧值,不会执行右侧代码;左侧为true才会运行并返回右侧表达式结果。开发中不建议在右侧编写赋值、自增、函数调用等带有副作用的代码,避免逻辑不执行引发不可预期的问题。

逻辑或||在两个布尔值任意一个为true时返回true,仅两侧都为false时返回false。它会先判断左侧表达式,左侧为true直接返回左侧值,跳过右侧执行,因此同样不建议在右侧放置带副作用的逻辑。

逻辑非!属于一元运算符,写在操作数前方,作用是将操作数的布尔结果取反。

七、赋值运算符与三元条件运算符

基础赋值运算符=要求左侧必须是变量、数组元素或对象属性,右侧可以是任意类型的值,遵循从右向左的结合顺序,支持连续赋值,整个赋值表达式本身的返回值就是等号右侧的值。

复合赋值运算符包括+=、-=、*=、/=,会先对左右两侧执行对应算术运算,再将最终结果赋值给左侧变量。

条件运算符?:是JavaScript中唯一的三元运算符,语法格式为:布尔表达式 ? 表达式1 : 表达式2。当第一个表达式转换为布尔值结果为true时,执行并返回表达式1的值;结果为false时,执行并返回表达式2的值,常用于简化简单的双分支条件判断逻辑。

JavaScript零基础快速入门指南:核心语法与学习路径全解析

本文围绕JavaScript零基础入门,系统讲解其核心组成ECMAScript、DOM与BOM,梳理基础语法、常量类型、var变量作用域、运

JavaScript入门操作与CSS结合JS交互实战指南

本文面向JavaScript前端入门开发者,系统梳理网页开发中的高频基础指令、服务器端数据库连接与CSS动态交互知识。内容涵盖文件管理、页面

HTML嵌入JavaScript代码方法及实操示例详解

JavaScript作为前端开发核心语言,语法与C/C++相近且无指针,内置类库丰富,有C语言基础者更易上手。文章重点讲解HTML文档嵌入J

编写第一个JavaScript程序:JS脚本嵌入HTML完整示例与运行解析

本文以JavaScript入门实例test1.html为主线,演示如何将JS脚本嵌入HTML文档:使用script标签包裹代码,通过aler

JavaScript常用基础语句全解析:语法、用法与示例

本文系统梳理JavaScript语句的七大常见类型,涵盖变量声明var、函数返回return、条件分支if...else与switch、循环

JavaScript基础语法详解:常量分类、变量规则与作用域入门

本文系统总结JavaScript核心基础语法,适合前端入门学习。内容涵盖六大基础常量类型:整型、实型、布尔、字符型、空值Null及特殊控制字

JavaScript入门基础:组成、历史与ECMAScript核心特性

JavaScript入门基础围绕组成、历史与ECMAScript核心特性展开。文章指出JavaScript由ECMAScript、DOM和B

JavaScript起源背景:从嵌入式脚本到网页交互核心

本文梳理JavaScript从嵌入式脚本到网页交互核心的发展脉络。1992年前后,Nombas推出C减减(Cmm),后更名ScriptEas

JavaScript入门教程:从零基础掌握JS核心特性与网页交互开发

本文围绕JavaScript入门与基础学习展开,系统介绍JavaScript作为网页交互核心脚本语言的定义、核心特性与开发优势。内容涵盖解释

提供免费的服务器维护、网站维护、宝塔面板的安装及运行。

网站编写代码分享

网站收录效果不好,自然会影响排名,网站优化首先第一步是要搞好网站收录

网络营销