Что означает ошибка JSLint «Неверный тип». имею в виду? - PullRequest
0 голосов
/ 13 июня 2011

При запуске файла JavaScript, который я разрабатываю через JSLint, я столкнулся с этой ошибкой:

Problem at line 387 character 68: Bad type.

  $iframe_contents.find('ul:last').append(OA_output['web' + x]);

Я не уверен, что означает "плохой тип", и я не могу найти больше информации об этом через некоторые поиски. Исходя из теории, что эта строка кода выполняет неявное преобразование типов, с которым JSLint не согласен, я изменил часть ['web' + x] на ['web'], и это исправило ошибку. Это подтверждает мою теорию, поскольку x является целым числом, и интерпретатору потребуется выполнить преобразование типа, чтобы добавить его в строку web.

Это подводит меня к моим вопросам - действительно ли это относится к ошибке «плохой тип», и если да, то есть ли что-то изначально неправильное или опасное в добавлении целого числа к такой строке? Как правильно написать эту строку кода, чтобы избежать этой ошибки (в идеале, чтобы не умиротворять JSLint)?

Если нужно, вот краткий обзор того, что содержит эта строка кода:

  • $iframe_contents - это кэшированный объект jQuery: $('iframe').contents().
  • .find() и .append() являются методами jQuery (http://api.jquery.com/find/ и http://api.jquery.com/append/, соответственно).
  • OA_output - это объект, где OA_output['web' + x] содержит строку.

1 Ответ

2 голосов
/ 13 июня 2011

Это действительно то, что есть.JSLint укажет на несоответствие типов между строкой и числом, даже если интерпретаторы JS могут справиться с этим просто отлично.Если вы измените его на OA_output['web' + x.toString()], у вас не должно быть этой проблемы.

...