严格相等与宽松相等
本课属于 Coddy JavaScript 学习旅程的“基础知识”单元。第 16 课,共 77 课。
在 JavaScript 中,有两种相等运算符:宽松相等(==)和严格相等(===)。
宽松相等(==)会在进行类型强制转换后 检查两个值是否相等。这意味着,如果操作数的类型不同,JavaScript 会尝试先将它们转换为相同的类型,再进行比较。
例如:
let b = 5 == "5"; // 结果为 true,因为比较前会先将字符串 "5" 转换为数字 5let b = 0 == false; // 结果为 true,因为比较前布尔值 false 会转换为数字 0。let c = "" == false; // 值为 true,因为比较前空字符串会被转换为数字 0另一方面,严格相等(===)会检查两个值是否相等,而不进行任何类型转换。如果操作数的类型不同,它们就被视为不相等。
例如:
let b = 5 === "5"; // 值为 false,因为没有进行类型转换,数字不等于字符串。let b = 0 === false; // 值为 false,因为没有进行类型转换,数字 0 不等于布尔值 false。一般来说,大多数情况下建议使用严格相等运算符(===),避免类型强制转换导致意外结果。
类似地,还有宽松不等于(!=)和严格不等于(!==)运算符,它们的工作方式类似,但检查的是不相等,而不是相等。
宽松不等运算符(!=)会在执行类型强制转换后检查两个值是否不相等,而严格不等运算符(!==)会在不进行类型转换的情况下检查两个值是否不相等。
挑战
入门给你一段包含三个变量的代码:a、b 和 c。
你的任务是执行以下比较并打印结果:
- 检查
a是否与b松散相等,并将结果存储在d中。 - 检查
a是否与c严格相等,并将结果存储在e中。 - 检查
b是否与c松散不相等,并将结果存储在f中。 - 检查
a是否与b严格不相等,并将结果存储在g中。
使用给定的变量和比较运算符完成任务。
亲手试试
// 已给定的变量
let a = 10
let b = "10"
let c = true
// 在下方输入你的代码
// 不要修改下方的代码行
console.log(`d = ${d}`)
console.log(`e = ${e}`)
console.log(`f = ${f}`)
console.log(`g = ${g}`)这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: JavaScript 在线编译器