JSLint坚持认为我在下面的示例中使用了某些exotic tilde operator是出乎意料的。我想知道这是否是JSLint的限制?还是严格模式?或者我还缺少什么?
(function () {
'use strict';
if (~'foo'.indexOf('bar')) {
return 'wild accusations';
}
}());
另外,为什么我不应该使用简单的代字号运算符而不是下面更复杂的示例?当然必须有充分的理由不去?
if ('foo'.indexOf('bar') >= 0) { … }
答案 0 :(得分:6)
来自JSLint Docs:
按位运算符
JavaScript没有整数类型,但它确实有按位运算符。按位运算符将其操作数从浮点转换为整数和返回,因此它们不如C或其他语言有效。它们在浏览器应用程序中很少有用。与逻辑运算符的相似性可以掩盖一些编程错误。按位选项允许使用这些运算符:<< >> >>> 〜& |
您可以在options
下启用它干杯