JavaScript 03-11

本文深入讲解JavaScript中的各类运算符,包括算术、赋值、比较、逻辑运算符,以及自增自减、三元运算符的用法和注意事项,帮助读者全面掌握JavaScript运算符的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript中的运算符

定义

所谓的运算符,就是操作变量的符号。在计算机程序中,使用特殊的定义好的符号,来对变量中的数据进行操作。

运算符的分类

算术运算符 / 数学运算符 
   +  -   *   /    %

 赋值运算符
   =   +=   -=   *=    /=    %=

 比较运算符
   >    <   >=   <=   ==  ===   !=  !==

 逻辑运算符
   &&    ||   ! 

数学运算符 / 算术运算符

+ 加号  如果都是数值,执行加法运算
        如果有字符串参与,结果是字符串拼接

- 减号  减法运算

* 乘号  乘法运算

 / 除号  除法运算
         除数,也就是第二个数值,不能为 0
         除数是0 , JavaScript中执行结果是  Infinity  表示无穷大
 % 求余数(求模) 符号

注意:

  1. +加号,有可能是字符串拼接,有可能是加法运算
  2. 除法运算中,如果除数是0,JavaScript中执行结果是 Infinity 表示无穷大。
  3. 求余数,也叫求模,执行结果与被除数的符号相同。如果被除数是正数,余数也是正数;如果被除数是负数,余数也是负数;如果整除,余数是 0 。

赋值运算符

=  赋值运算符  
	将符号右侧的内容,赋值给左侧的内容
+=   加等赋值
	在左侧存储数值的基础上,加上右侧内容的执行结果,再把最终的数值赋值给左侧变量
-=  减等赋值
	在变量存储的原始数据基础上,减去右侧的执行结果,再将最终结果赋值给左侧变量存储
*=  乘等赋值运算符
	在变量存储的原始数据基础上,乘以右侧的执行结果,再将最终结果赋值给左侧变量存储
/=  除等赋值运算符
	在变量存储的原始数据基础上,除以右侧的执行结果,再将最终结果赋值给左侧变量存储

注意:

如果执行 += -= *= /= %= 赋值运算符,左侧变量必须被正确定义。如果变量没有被正确定义,执行 += 这样的操作会报错,如果只定义没有赋值,执行结果是 NaN。
在当前行声明也会报错。像这样:

var int += 100;           //这样的定义变量,是错误语法
//+=  -=   *=  /=  %=  之前不能有关键词 var

比较运算符

大于 < 小于 >= 大于等于 <= 小于等于
// == 等于判断 === 全等判断
// != 不等判断 !== 不全等判断

注意:

  1. 比较运算符的结果一定是 布尔类型 true / false。
  2. 必须严格遵守 书写规范 >= <= 不能有空格。
  3. 符号不能连续写 3 <= int <= 5 这是错误的语法形式。
  4. == 等于判断的执行过程,会先判断两侧内容的数据类型。如果数据类型不同,会自动转化为相同的数据类型,再判断转化之后的数值是否相同。
    转化原则:一般是 字符串 —> 数值 —> 布尔值。
  5. === 全等判断的执行过程,会先判断两侧内容的数据类型。如果数据类型不同,不会执行数据类型转化,直接返回false。如果数据类型相同,再比较数值内容。
  6. != 不等判断与 == 等于判断执行原理相同,但是执行结果完全相反。== 等于判断是数值相同,返回true;!= 不等判断是数值相同,返回false。实际项目中往往就使用一种就可以了。
  7. !== 不全等判断执行原理与 === 全等判断相同,执行结果完全相反。
  8. 如果是 NaN 参与的任何与数值的比较判断,结果都是false。

实例:
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动:

var int = 50;

if( int > 20 ){
    console.log( int + '大于20' );
}
else{
    console.log( int + '小于或等于20' );
}

逻辑运算符

逻辑运算符的种类:

逻辑与  表达式1 &&  表达式2
	两个表达式的结果都是true,逻辑与的结果才是true。
	如果有一个表达式的结果是false,整个逻辑与的结果,就会是false。
逻辑或 表达式1 || 表达式2
	当两个表达式都是false,逻辑或的结果是false。
	如果一个是true,逻辑或的结果就是 true。
逻辑非  !表达式 
	对表达式的结果取反

注意:逻辑运算符必须要根据表达式1和表达式2的布尔值来确定逻辑运算符的最终结果,因此 表达式1 和 表达式2 如果执行结果不是布尔值,都会自动转化为 布尔值。

逻辑运算符的短路求值
定义

为了提高程序的执行效果,如果最终的结果已经确定,多余的程序就不会执行。

逻辑与 表达式1 && 表达式2

当 第一个表达式 的结果是 false 时,不管第二个表达式的结果是什么,整个逻辑与的结果已经可以确定是 false了,此时第二个表达式的执行已经是多余的了,就不会再执行了。

实例

var int1 = 100;
var int2 = 200;

// int1 > 10 结果是 true
// 需要第二个表达式来确定整个逻辑与的结果
// 此时第二个表达式会执行, int2 会赋值 为 100
int1 > 10  && ( int2 = 100 )  ;
console.log(int2);

// 表达式1,结果是false,已经可以确定,逻辑与的结果是false
// 表达式2,的执行结果,不会影响整个逻辑与的结果
// 表达式2不会执行 int2 = '我是北京' 这个赋值操作不会执行, int2仍然是100
int1 < 10  && ( int2 = '我是北京' )  ;
console.log(int2);
逻辑或 表达式1 || 表达式2

当第一个表达式的结果是 true,已经可以决定整个逻辑或的结果是 true,第二个表达式的执行结果没有意义,表达式2不会执行。

实例

var int3 = 300;
var int4 = 400;

// 逻辑或,第一个表达式是false,无法确定整个逻辑或的结果
// 需要执行第二个表达式
int3 > 1000 || ( int4 = '我执行了' )

// 逻辑或,第一个表达式是true,已经可以确定整个逻辑或的结果是true
// 不需要执行第二个表达式 , int4 还是 存储 我执行了
int3 < 1000 || ( int4 = '我其实没有执行,就这么着吧' )
console.log( int4 );
逻辑运算符的短路赋值

在实际项目中,往往经常使用逻辑运算符,给变量进行赋值。

实例

// 定义变量但是没有赋值,int中存储的是undefined
// int本身没有赋值,str,也没有赋值
// 执行逻辑运算符 int 是 undefined 转化为布尔类型 是 false
// 逻辑或的一个表达式是 fasle , 就会执行第二个表达式
// 也就是先个str 赋值 undefined 在给str 赋值 500 
// 那么 str 最终存储的数值 是 500
// 当 int 没有 数值存储时, 给变量赋值的是默认值 
// 如果 int 中有数值 是100 , 转化为 布尔值 是true
// 逻辑或第一个表达式是 true, 不会执行第二个表达式
// 只会给 str 赋值100
var int = 100 ;
var str = int || 500 ;
console.log(str);

自增自减运算符

++ 自增 每次执行,都会在变量存储的原始数值基础上 +1
++ 符号展开的意思就是 int = int + 1
-- 自减 每次执行,都会在变量存储的原始数值基础上 -1
-- 符号展开的意思就是 int = int - 1
前缀/前置语法 ++变量(–变量)

先改变变量中存储的数值,使用新的数值来参与程序的执行。

后缀/后置语法 变量++(变量–)

先使用变量中存储的数值参与程序的执行,再改变变量中存储的数值。

实例

var a = 0;
var b = 0;

//  第一个 a++ 此时 a的原始数值是 0 执行的是 后置语法, 参与运算的是原始数值 也就是 0
//        下一个位置开始,体现a++的操作结果,a会变为 1

//  第二个 ++a 此时 a的原始数值 变为 1 , 执行的是 前缀语法, 参与运算的是数值 2 

//   0  +  2 --- b 的结果是 0 + 2 是 2 
b = a++ + ++a ;

// 判断a 也就是 判断执行++操作的变量,执行几次++ ,结果就是 +几
console.log(a);  
// 判断b 要具体分析每一个位置上,a的原始数值,和a参与程序的数值
console.log(b);

三元(三目)运算符

定义

所谓的 三元 / 三目 运算符,指得是有三个表达式来参与程序的执行。

有一个表达式参与程序的执行,称为 一元 / 一目运算符
    	 ++  --  !   
有二个表达式参与程序的执行,称为 二元 / 二目运算符
     	大部分运算符都是 二元运算符

有三个表达式参与程序的执行,称为 三元 / 三目运算符
     	表达式1 ? 表达式2 : 表达式3
规则
通过 表达式1 的 执行结果的布尔值来进行判断:
    如果 表达式1 执行结果是 true  执行 表达式2
    如果 表达式1 执行结果是 false 执行 表达式3

三元运算符,就是简单的if判断。

实例

var int = 2;

if(int > 20){
    console.log( int + '大于20' );
}
else{
    console.log( int + '小于或等于20' );
}
//上下两部分等价
int > 20 ? console.log( int + '大于20' ) : console.log( int + '小于或等于20' );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值