Coffeescript 严格比较

Coffeescript strict comparisons

我有以下代码:

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

如果我运行:

typeof form_id

我得到:

number

当然同样适用于:

typeof 3

但是,当为 form_id 传入值 3 时,比较 returns false。

Coffeescript 在编译时将抽象比较更改为严格比较。如果我将输出修改为抽象比较 if 语句 returns true.

鉴于类型和值相等,我认为 if 语句应该通过严格比较返回 true?

如有任何帮助,我们将不胜感激。

我不认为 Numbertypeof 3typeof 3'number',这与 Number 不同。在 JavaScript 中,如果您有 a = 3b = new Number(3),则:

a == b   // true
a === b  // false
typeof a // 'number'
typeof b // Number

当然,在 CoffeeScript 中,== 是 JavaScript 的 ===,因此 a == b 在 CoffeeScript 中将是 false。听起来很熟悉?

我认为您的图书馆正在为您提供 new Number(3)。如果是这种情况,那么您可以使用 Number(form_id):

获得一个普通的旧号码
if Number(form_id) == 3
  # Do stuff here