ActionScript:我应该总是使用严格的相等(“===”)吗?

时间:2011-02-19 20:20:36

标签: actionscript equality strict

我想知道在进行相等检查时是否总是使用“===”(严格相等)...是否有任何关于何时使用“==”的示例(非严格平等)?特别应该:

  • if (param1 == null || param1.length == 0)

  • if (param1 === null || param1.length === 0)

像弦乐这样的东西怎么样? param1 == "This is a String."

2 个答案:

答案 0 :(得分:5)

应该使用的操作员取决于您的需求。

“==”检查两个值在转换为相同数据类型后是否相等(如果可能)。因此,“5”== 5将为真,因为字符串“5”将转换为一个数字,然后进行检查,显然5实际上等于5。

“===”检查两个值是否相同并且相等。因此,“5”=== 5将评估为false,因为一个是字符串,一个是数字。

在使用选择方面,它归结为期望。如果您希望比较的两个值属于同一类型,则应使用“===”。但是,如果它们可以是不同的类型并且您希望比较自动执行转换(例如,将字符串5与数字5进行比较),则可以使用“==”。

对于您的示例,所有这些都应该与“==”运算符一样好,但为了增加类型安全性,您当然可以使用“===”运算符。例如,我倾向于专门检查空值。

希望这有帮助。

答案 1 :(得分:1)

我实际上并不了解ActionScript,但我相信它符合EMCAScript,这意味着我的JavaScript知识是相关的。

在JavaScript中,如果您愿意接受显式输入(这意味着永远不会"something" + 5,请始终明确您的类型,例如"something" + String(5)),如果您接受这种方法,那么实际上永远一个实例,其中==优先于===。