对此代码块的任何指导将不胜感激
var x = 'bar';
function myFunction(){
if (x === ('foo' || 'bar')) {
return 'Match';
} else if (x === 'nofoo'){
return 'No Match';
} else
return 'Blank field';
}
console.log(myFunction());
当我有var x的字符串栏时,控制台会弹出“空白字段”。
当我有var x ='foo'时,控制台显示'Match'
如果我删除以下行的括号:
if (x === 'foo' || 'bar')
然后将所有内容键入var x ='[here]';成为比赛。
胜任的程序员如何编写此代码,以便如果x为'foo'或'bar'则返回真实语句。
答案 0 :(得分:1)
不是||
的用法。您应该检查x
等于foo
还是x
等于bar
;
if (x === 'foo' || x === 'bar')
在您的第一个代码中,x === ('foo' || 'bar')
的意思是:如果x
等于'foo' || 'bar'
的结果'foo'
,因为||
产生第一个真实元素。因此,在这种情况下,代码等效于if(x === 'foo')
。
在您的第二个代码中,x === 'foo' || 'bar'
的意思是:如果x
等于'foo'
或'bar'
是真实的,由于===
比{{1 }}。由于||
是真实的,因此代码等效于'bar'
。
答案 1 :(得分:0)
> newtype IN_0 = IN_0 Integer deriving Show
> nminus :: IN_0 -> IN_0 -> IN_0
> nminus (IN_0 z) (IN_0 z')
> | z >= 0 && z' >= 0 = IN_0 $ maximum(0,z-z')
> | otherwise = IN_0 0
喜欢...;)
答案 2 :(得分:-3)
您应该像这样将'foo'和'bar'比较分开:
if (x === 'foo' || x === 'bar')
并且请使用const
或let
进行变量声明。 var
会产生不同的错误。