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