我正在编写有关codechool的Angular课程,并通过以下方式完成了其中一项练习:
this.isSet = function(value) {
if (value === this.tab) {
return true;
}
};
但是在下一个练习中,我的代码被替换为:
this.isSet = function(tabName){
return this.tab === tabName;
};
这一定是一个愚蠢的问题,但是你可以通过使用简单的===绕过if语句吗?
答案 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