if语句并返回var === somethingElse

时间:2014-11-22 12:31:45

标签: javascript angularjs if-statement equivalent

我正在编写有关codechool的Angular课程,并通过以下方式完成了其中一项练习:

this.isSet = function(value) {
  if (value === this.tab) {
    return true;
  }
};

但是在下一个练习中,我的代码被替换为:

this.isSet = function(tabName){
  return this.tab === tabName;
};

这一定是一个愚蠢的问题,但是你可以通过使用简单的===绕过if语句吗?

3 个答案:

答案 0 :(得分:1)

如果值=== this.tab,则返回true,如果值为!== this.tab,则返回undefined。在第二个例子中,===将返回true,而!==将返回false。未定义和错误都是'falsy',因此您可以以相同的方式使用它们。

答案 1 :(得分:1)

如果你重新阅读自己的代码,你会发现if语句没有添加任何内容,如果失败,你的函数将返回undefined,这不是最佳的,因为它不是{ {1}}值。

这不是“绕过”(我不太明白你的意思),但是boolean语句会根据评估结果返回return this.tab === tabName;true(将永远是false值。即第二个代码示例返回与第一个相同的值(boolean),当true / value和{{1分别相等(tabName)。

答案 2 :(得分:0)

==运算符将在执行任何必要的类型转换后比较相等性。 ===运算符不会进行转换,因此如果两个值不是同一类型===将只返回false。在这种情况下,===会更快,并且可能会返回与==不同的结果。在所有其他情况下,表现将是相同的。

有关详细信息,请参阅本教程:http://www.c-point.com/javascript_tutorial/jsgrpComparison.htm