Неявная проверка приведения / приведения номера выдает «неожиданную X» ошибку JSLint - PullRequest
2 голосов
/ 12 февраля 2011

в этом нет ничего серьезного, а просто вопрос из любопытства. Следующий скрипт на JSLINT.com выдает странную и «неожиданную» ошибку. Мой сценарий работает, но я все еще хотел бы знать, может ли кто-нибудь объяснить ошибку.

var hashVar = parseInt(location.hash.replace('#',''), 10);
if(hashVar-0 === hashVar){L();}

ОШИБКА: проблема в строке 3, символ 4: неожиданный 'hashVar'.

Наслаждайся выходными, Ульрик

1 Ответ

4 голосов
/ 12 февраля 2011

Вы, вероятно, хотите это:

var hashVar = parseInt(location.hash.replace('#', ''), 10);
if ( !isNaN(hashVar) ) { L(); } 

Этот код имеет те же функции, что и ваш исходный код.


Кстати, это:

if ( !isNaN(hashVar) ) { L(); }

может быть дополнительно уменьшено до этого:

isNaN(hashVar) || L();

; -)


Объяснение:

Возвращаемое значение parseInt может быть:

a) целочисленное числовое значение
b) значение NaN

Поэтому, если вы хотите проверить,возвращаемое значение является целым числом или нет, просто используйте isNaN().

...