Coffeescript严格比较

时间:2015-02-18 04:04:31

标签: javascript coffeescript strict comparison-operators

我有以下代码:

$(document).bind 'gform_confirmation_loaded', (event, form_id) =>
  if form_id == 3
    // Do stuff here
...

如果我跑:

typeof form_id

我明白了:

number

当然,情况也是如此:

typeof 3

但是,当为form_id传递值3时,比较返回false。

Coffeescript在编译时将抽象比较更改为严格的比较。如果我将输出修改为抽象比较,则if语句返回true。

鉴于类型和值是相等的,if语句应该返回true,我认为会进行严格的比较吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为Number typeof 3 typeof 3 'number' a = 3 b = new Number(3) a == b // true a === b // false typeof a // 'number' typeof b // Number ==不一样}。在JavaScript中,如果您有===a == b,那么:

false

当然在CoffeeScript中,new Number(3)是JavaScript Number(form_id),因此if Number(form_id) == 3 # Do stuff here 在CoffeeScript中将是{{1}}。听起来很熟悉吗?

我认为你的图书馆正在给你{{1}}。如果是这种情况,那么您可以使用{{1}}获得一个普通的旧号码:

{{1}}