Menu
CoddyTech

严格相等与宽松相等

本课属于 Coddy JavaScript 学习旅程的“基础知识”单元。第 16 课,共 77 课。

在 JavaScript 中,有两种相等运算符:宽松相等(==)和严格相等(===)。

宽松相等(==)会在进行类型强制转换后 检查两个值是否相等。这意味着,如果操作数的类型不同,JavaScript 会尝试先将它们转换为相同的类型,再进行比较。

例如:

let b = 5 == "5";   // 结果为 true,因为比较前会先将字符串 "5" 转换为数字 5
let b = 0 == false; // 结果为 true,因为比较前布尔值 false 会转换为数字 0。
let c = "" == false; // 值为 true,因为比较前空字符串会被转换为数字 0

另一方面,严格相等(===)会检查两个值是否相等,而不进行任何类型转换。如果操作数的类型不同,它们就被视为不相等。

例如:

let b = 5 === "5";   // 值为 false,因为没有进行类型转换,数字不等于字符串。
let b = 0 === false; // 值为 false,因为没有进行类型转换,数字 0 不等于布尔值 false。

一般来说,大多数情况下建议使用严格相等运算符(===),避免类型强制转换导致意外结果。

类似地,还有宽松不等于(!=)和严格不等于(!==)运算符,它们的工作方式类似,但检查的是不相等,而不是相等。

宽松不等运算符(!=)会在执行类型强制转换后检查两个值是否不相等,而严格不等运算符(!==)会在不进行类型转换的情况下检查两个值是否不相等。

challenge icon

挑战

入门

给你一段包含三个变量的代码:a、b 和 c。

你的任务是执行以下比较并打印结果:

  1. 检查 a 是否与 b 松散相等,并将结果存储在 d 中。
  2. 检查 a 是否与 c 严格相等,并将结果存储在 e 中。
  3. 检查 b 是否与 c 松散不相等,并将结果存储在 f 中。
  4. 检查 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}`)
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: JavaScript 在线编译器