ActionScript:我是否应该始终使用严格相等 ("===")?

标签 actionscript equality strict

我想知道在进行相等检查时是否应该始终使用“===”(严格相等)...是否有任何示例说明何时最好使用“==”(非严格相等)?特别是,应该:

  • 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/

    相关文章:

    javascript - 在 JavaScript 的严格模式下,为什么读取一个 set-only 属性不会报错?

    actionscript-3 - 在变量声明或构造函数中实例化类

    apache-flex - 找出 *.SWC 文件的包名称,以便我可以导入它

    apache-flex - ActionScript 中的语法高亮库

    equality - 异质平等的一致性

    firefox - CSS - 行高 :0 ignored in XHTML strict in Firefox

    node.js - ArcusNode 无法设置未定义的属性 '1'

    java - Java 基础问题 : String equality

    Java:如何测试数组相等性?

    C++对齐——严格和弱