我想知道在进行相等性检查时是否应该始终使用“===”(严格相等)......有没有什么时候最好使用“==”(非严格相等)的例子?特别是,应该:
if (param1 == null || param1.length == 0)
是
if (param1 === null || param1.length === 0)
?
像字符串这样的东西呢?param1 == "This is a String."
我想知道在进行相等性检查时是否应该始终使用“===”(严格相等)......有没有什么时候最好使用“==”(非严格相等)的例子?特别是,应该:
if (param1 == null || param1.length == 0)
是
if (param1 === null || param1.length === 0)
?像字符串这样的东西呢?param1 == "This is a String."
应使用的运算符取决于您的需要。
"==" 检查两个值在转换为相同数据类型后是否相等(如果可能)。因此,"5" == 5 为真,因为字符串 "5" 被转换为数字,然后进行检查,显然 5 实际上等于 5。
"===" 检查两个值是否相同且相等。因此, "5" === 5 将评估为 false,因为一个是字符串,一个是数字。
在使用选择方面,它归结为期望。如果您希望您比较的两个值属于同一类型,那么您应该使用“===”。但是,如果它们可以是不同的类型,并且您希望比较自动执行转换(例如,将字符串 5 与数字 5 进行比较),那么您可以使用“==”。
在您的示例中,所有这些都可以使用“==”运算符,但为了增加类型安全性,您当然可以使用“===”运算符。例如,我倾向于专门检查空值。
希望这可以帮助。
我实际上对 ActionScript 了解不多,但我相信它符合 EMCAScript,这意味着我的 JavaScript 知识将是相关的。
在 JavaScript 中,如果您愿意采用显式类型(这意味着永远不要这样做"something" + 5
,始终在您的类型中显式,例如"something" + String(5)
),如果您采用这种方法,实际上永远不会出现 == 优于 === 的实例。