我曾经遇到过一个运算符 "==="。但是我不记得它是什么,或者我们在哪里使用它,或者是否有这样一种运算符?它的使用场景在哪里?
在PHP、JavaScript、ECMAScript、ActionScript 3.0以及一些其他类似的动态语言中,有两种相等性检查方式:==(非严格相等)和===(严格相等)。以下是一个示例:
5 == "5" // yep, these are equal, because "5" becomes 5 when converted to int
5 === "5" // nope, these have a different type
基本上,每当你使用 == 时,都会有自动类型转换的风险。使用 === 确保值在逻辑上相等且对象类型也相等。
在JavaScript中,==
运算符会进行类型转换,而 "严格相等"运算符===
则不会。例如:
"1" == 1; // true
"1" === 1; // false
还有一个对应的严格不等运算符!==
。
它被用于JavaScript、PHP等技术中,可能还有其他我没接触过的技术!它的作用是比较两个对象是否具有相同的对象类型和相同的值。
"===" 运算符用于检查值是否相等且类型相同。
示例:
$a === $b if $a is equal to $b, and they are of the same type.
通常它测试两个对象是否相同。即,不是测试它们是否具有相同的值,而是它们是否真的是同一个对象。
case/when
构造用来确定一个对象是否“属于”某个特定的 case。例如,Ruby 有“范围”对象的概念;1..10
表示“1 到 10 之间的所有值(包括 1 和 10)”。因此,`3 == 1..10' 是错误的,因为 3 是一个数字而 1..10 是一个范围。但是,
3 === 1..10
返回 true,因为 3 在该范围内。case a
when (1..10)
puts "This is a valid rating"
else
puts "invalid"
end
正常工作。
5 === "5"
而不是5 === 5
。 - Joe D