我想知道在进行相等检查时是否应该始终使用“===”(严格相等)...是否有任何示例说明何时最好使用“==”(非严格相等)?特别是,应该:
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:我是否应该始终使用严格相等 ("===")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5053264/