以下声明正常,但 jshint 不接受。
我的问题是"这个语法在javascript的未来仍然有效吗?"。
如果不是问题,如何配置 jshint 来忽略它?
function(a){
return (a === 'y'|'x'|'z') ? a : 'x';
// return a if its value is x, y or z, default it to x otherwise
}
- 更新 -
!!请忽略这个!!实际上这不能正常工作。你不应该在字符串上使用按位运算符,除非是非常具体的情况,当你知道你在做什么时:p
答案 0 :(得分:2)
我认为bitwise operators在将来的JS版本中仍然有效,这些是用于许多编程语言的基本运算符。它们是在第一版ECMA中引入的,似乎将作为ECMA 6或7包含在未来版本中。
您可以通过在文件顶部设置此项来关闭 jslint 警告:
/*jshint bitwise: true*/
答案 1 :(得分:0)
<强> !!请忽略这个!!事实上,这对于未来的情况并不顺利。
除了非常具体的情况以及当你知道自己在做什么时,你不应该在字符串上使用按位运算符:p
我想要实现的是这样的。
function test(a){
return (['x','y','z'].indexOf(a)>=0 ? a : 'x');
}
document.write( test('x') + ', ' );
document.write( test('y') + ', ' );
document.write( test('z') + ', ' );
document.write( test('w'));
但这与bitwise运算符有关。
对于这个误导性的帖子感到抱歉。