2024-12-1 日报 Day22

2024-12-1 日报 Day22

Yuyang 前端小白🥬

今日的鸡汤

愿你拥有坚如磐石的信念,还有无问西东的勇气。

今日学习内容

1、JS红皮书P71-72 第三章:语言基础

今日笔记

1、相等操作符:ECMAScript提供了两组操作符。第一组是等于和不等于,它们在比较之前执行转换。第二组是全等和不全等,它们在比较之前不执行转换。
2、等于和不等于(==和!=):
ECMAScript 中的等于操作符用两个等于号(==)表示,如果操作数相等,则会返回 true。不等于操作符用叹号和等于号(!=)表示,如果两个操作数不相等,则会返回 true。这两个操作符都会先进行类型转换(通常称为强制类型转换)再确定操作数是否相等。
在转换操作数的类型时,相等和不相等操作符遵循如下规则。
 如果任一操作数是布尔值,则将其转换为数值再比较是否相等。false 转换为 0,true 转换为 1。
 如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等。
 如果一个操作数是对象,另一个操作数不是,则调用对象的 valueOf()方法取得其原始值,再根据前面的规则进行比较。
在进行比较时,这两个操作符会遵循如下规则。
 null 和 undefined 相等。
 null 和 undefined 不能转换为其他类型的值再进行比较。
 如果有任一操作数是 NaN,则相等操作符返回 false,不相等操作符返回 true。记住:即使个操作数都是 NaN,相等操作符也返回 false,因为按照规则,NaN 不等于 NaN。
 如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回 true。否则,两者不相等。
下表总结了一些特殊情况及比较的结果:

表达式 结果
null == undefined true
“NaN” == NaN false
5 == NaN false
NaN == NaN false
NaN != NaN true
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
“5” == 5 true
3、全等和不全等(===和!==):全等和不全等操作符与相等和不相等操作符类似,只不过它们在比较相等时不转换操作数。全等操作符由 3 个等于号(===)表示,只有两个操作数在不转换的前提下相等才返回 true,比如:
let result1 = (“55” == 55); // true,转换后相等
let result2 = (“55” === 55); // false,不相等,因为数据类型不同
4、条件操作符:variable = boolean_expression ? true_value : false_value;
5、赋值操作符:赋值操作符用于给变量赋值。赋值操作符由等于号(=)表示,它将右侧的值赋给左侧的变量。赋值操作符的右侧可以是任何类型的值,包括变量、常量、表达式等。赋值操作符的右侧可以是任何类型的值,包括变量、常量、表达式等。
复合赋值操作符:
 乘后赋值(*=)
 除后赋值(/=)
 取模后赋值(%=)
 加后赋值(+=)
 减后赋值(-=)
 左移后赋值(<<=)
 右移后赋值(>>=)
 无符号右移后赋值(>>>=)
这些操作符仅仅是简写语法,使用它们不会提升性能。
6、逗号操作符
逗号操作符可以用来在一条语句中执行多个操作,如下所示:
let num1 = 1, num2 = 2, num3 = 3;
在一条语句中同时声明多个变量是逗号操作符最常用的场景。不过,也可以使用逗号操作符来辅助赋值。在赋值时使用逗号操作符分隔值,最终会返回表达式中最后一个值:
let num = (5, 1, 4, 8, 0); // num 的值为 0
在这个例子中,num 将被赋值为 0,因为 0 是表达式中最后一项。逗号操作符的这种使用场景并不多见,但这种行为的确存在
此页目录
2024-12-1 日报 Day22