语法问题。条件声明

时间:2014-12-16 19:38:24

标签: javascript conditional conditional-statements conditional-operator

以下声明正常,但 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

2 个答案:

答案 0 :(得分:2)

我认为bitwise operators在将来的JS版本中仍然有效,这些是用于许多编程语言的基本运算符。它们是在第一版ECMA中引入的,似乎将作为ECMA 6或7包含在未来版本中。

您可以通过在文件顶部设置此项来关闭 jslint 警告:

/*jshint bitwise: true*/

查看documentation

答案 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运算符有关。

对于这个误导性的帖子感到抱歉。