2012-06-24 3 views
2

Я положил cross-browser split в свой код и запустить его через jsHint и получил Unexpected use of '>>>' в строках:Неожиданное использование «>>>» в кросс-браузерный разделить

limit = limit === undef ? 
    -1 >>> 0 : // Math.pow(2, 32) - 1 
    limit >>> 0; // ToUint32(limit) 

то же самое, когда я положил его в одну строку а также положить выражения в круглые скобки

это ошибка? Как я могу это исправить?

+0

Не следует ли 'undef' быть' undefined'? – gdoron

+1

@gdoron: Некоторые люди используют свою собственную копию 'undefined', если кто-то затеняет символ. Например, '(function (undef) {/ * ... code here ... * /})();'. Это паранойя, на мой взгляд, но ... :-) Кроме того, 'undefined' - довольно длинный идентификатор, поэтому некоторые люди могут делать это только для более короткого. –

ответ

4

Вы можете отключить ошибку (ну, они действительно должны назвать это предупреждение), выключая «Когда битовые операторы используются» вариант (верхний вариант в списке here   — странно, в документации не говоря уже о всех побитовые операторы, к которым он относится); если вы это сделаете, код выше не приведет к ошибке.

Here's the rationale для предупреждения об использовании операторов поразрядных от оригинального инструмента JSLint (JSHint является дружелюбнее версией JSLint с большим количеством опций, чтобы выключить «ошибку», которые чисто стиль):

Побитовых Операторами

JavaScript не имеет целочисленного типа, но имеет побитовые операторы. Побитовые операторы преобразуют свои операнды с плавающей запятой на целые и обратно, поэтому они не так эффективны, как на C или других языках. Они редко используются в приложениях браузера. Сходство с логическими операторами может маскировать некоторые ошибки программирования. Опция bitwise позволяет использовать следующие операторы: <<>>>>>~&|.

Смежные вопросы