javascript中的串联比较
这更多是出于好奇,但是否可以在javascript中连接比较 示例:javascript中的串联比较,javascript,comparison-operators,Javascript,Comparison Operators,这更多是出于好奇,但是否可以在javascript中连接比较 示例: var foo = 'a', bar = 'b'; if (foo === ('a' || bar)) { console.log('yey'); } 关于 var foo = 'a', bar = 'b'; if (foo === 'a' || foo === bar)) { console.log('yey'); } 注:当您在几种情况下比较同一变量时,这可能非常有用。有几种不同的方法
var foo = 'a',
bar = 'b';
if (foo === ('a' || bar)) {
console.log('yey');
}
关于
var foo = 'a',
bar = 'b';
if (foo === 'a' || foo === bar)) {
console.log('yey');
}
注:当您在几种情况下比较同一变量时,这可能非常有用。有几种不同的方法可以做到这一点。我最喜欢的是将数组与
有几种不同的方法可以做到这一点。我最喜欢的是将数组与 您可以使用: 尽管某些旧浏览器不支持此方法,但请查看MDN中的兼容性问题,其中提供了一个简单的解决方案 注释中建议的另一种方法是检查对象中是否存在属性:
if (foo in {a: 1, b: 1}) { // or {a: 1, b: 1}[foo]
console.log("yey");
}
您可以使用:
尽管某些旧浏览器不支持此方法,但请查看MDN中的兼容性问题,其中提供了一个简单的解决方案
注释中建议的另一种方法是检查对象中是否存在属性:
if (foo in {a: 1, b: 1}) { // or {a: 1, b: 1}[foo]
console.log("yey");
}
这是一个解决方案
另一个选择是
其他解决方案也可以是对象查找或正则表达式 这是一个解决方案
另一个选择是
其他解决方案也可以是对象查找或正则表达式 通常我会使用正则表达式:
if (^/a|b$/i.test(foo)) {
...
}
通常,我会使用正则表达式:
if (^/a|b$/i.test(foo)) {
...
}
似乎
如果({a:1,b:1}[foo])
会更好一点。@Pointy。。。或者{a:1,b:1}中的foo。看起来像如果({a:1,b:1}[foo])
会更好一点。@Pointy。。。或者{a:1,b:1}中的foo
。非常有趣。没有想过使用indexOf。非常有趣。没有想过使用indexOf。是的。虽然如果右边不是字符串或数字,这将不起作用。@Tivie给出一个失败的例子?开关不限于字符串和数字。很抱歉,你是对的。似乎javascript允许您使用variablesys切换/case。虽然如果右边不是字符串或数字,这将不起作用。@Tivie给出一个失败的例子?开关不限于字符串和数字。很抱歉,你是对的。似乎javascript允许您使用variablesOops切换/case。这是个骗局。实际上我在这里搜索过,但什么也找不到。编辑过,所以有点不同。这是个骗局。实际上我在这里搜索过,但没有找到任何东西。经过编辑,所以它变得有点不同
if (^/a|b$/i.test(foo)) {
...
}