2012-02-27 1 views
9

JSLint는 아래 예에서 약간의 사용이 예상치 못한 것으로 주장합니다. 이것이 JSLint의 한계인지 아닌지 궁금합니다. 또는 엄격 모드? 아니면 내가 뭘 놓치고 있니?JSLint가 내 틸을 기대하지 않음

(function() { 
    'use strict'; 
    if (~'foo'.indexOf('bar')) { 
     return 'wild accusations'; 
    } 
}()); 

또한 아래의 복잡한 예제 대신 간단한 모양의 물결표 연산자를 사용하지 않아야합니까? 확실히 좋은 이유가 있어야하지 않을까요? JSLint Docs에서

if ('foo'.indexOf('bar') >= 0) { … } 
+3

헤이 아래를 활성화 할 수 있습니다. – MrBoJangles

+0

''비트 단위 연산자 허용 '을 활성화해야합니다 ('~'는 비트 단위 연산자입니다). 그것을 사용하지 않는 이유 : 나는 그것이 일반적으로 사용되는 것이고 이해하기가 더 어렵다고 생각하지 않습니다.하지만 그것은 저일지도 모릅니다. 연산자 자체에 대한 이해뿐만 아니라 숫자 표현 *에 대한 이해가 필요합니다. 즉, '-1'은 모든 비트가 '1'로 표현되므로 (따라서 보수는 '0'-> '거짓') . –

+0

~은 비트 NOT이므로 JS 0-> TRUE! 0-> FALSE, ~ ~> 0 ... 영리 –

답변

6

:

비트 연산자

자바 스크립트는 정수 타입을 가지고 있지 않지만, 비트 연산자를 가지고있다. 비트 연산자는 피연산자를 부동 소수점에서 정수로 변환하므로 C 나 다른 언어만큼 효율적이지 않습니다. 브라우저 응용 프로그램에서는 거의 유용하지 않습니다. 논리 연산자와의 유사점은 일부 프로그래밍 오류를 가릴 수 있습니다. bitwise 옵션을 사용하면 다음 연산자를 사용할 수 있습니다. < < >> >>> ~ & |.

당신은 내가 모르는 뭔가, options

건배

+0

링크가 작동하지 않음, 솔루션으로 답변을 더 잘 업데이트하십시오. – sidgate