angularjs表达式应该只检查值或值和类型(===或==)

时间:2016-10-11 19:04:44

标签: angularjs

当使用angularjs指令和表达式时,我们应该使用值和类型检查运算符或只是值检查。哪一个是正确的。

ng-show="count === 1"

 ng-show="count == 1"

1 个答案:

答案 0 :(得分:1)

取决于。

如果你使用带有TypeScript的angular2,你可以可靠地使用严格相等运算符(===),因为你不需要在模板中进行类型强制:您的组件或服务应该发现某些内容正在'5'传递到5所在的位置。

如果你仍处于角度1,我会说这在很大程度上取决于无效强制的后果以及你对应用程序输入的控制程度。

如果您从您控制的REST服务请求JSON,并且您的前端希望值为number,请发送number并使用===

如果您正在使用某些第三方API而您无法确定它的发送方式,请检查并重新进行相应检查或相等检查。但是在这种情况下,API违反了合同并在您希望的null的位置发送false或布尔number,您可能希望be defensive并做出反应因此,无论如何它都会在你的模板上出现。

我个人总是喜欢使用===并将应用程序设计为在有意义的地方进行类型检查和重铸,但这主要是一种意见。

上述反轶事:在之前的工作中,我们从一个数据库引擎转换到另一个数据库引擎。我们前端构建的所有关系都使用了身份比较。新数据库驱动程序决定为记录ID返回string而不是number,但不会为关系映射返回。我们花了一段时间才重构它。身份比较首先给我们带来了什么好处?我不争辩。如果我们使用了相等比较(==),它几乎可以开箱即用,并且不会有更大的破坏风险。