Объединение выражений "var"

JSLint бросает проблемы, говоря мне Combine this with the previous 'var' statement но я не уверен, как бы я сделал это правильно с моим кодом:

var len = results.rows.length, i;
//loop around each record in the database
for (i = 0; i < len; i++) {
    var singleRecord = results.rows.item(i);

    //create list
     var individualRecord = '';
     individualRecord = '<li><a href="#info" id="anIndividualRecord" data-key="' + individualRecord.id + '" >';

это говорит мне, чтобы объединить три var заявления там, но если бы кто-нибудь мог посоветовать мне, как это сделать, не создавая больше проблем, это было бы очень ценно.

4 ответа

Сделай все это в твоем топе var декларация

var len = results.rows.length, i, inidividualRecord, singleRecord;

for(i=0; i< len; i++) {
  singleRecord = results.rows.item(i);

  individualRecord = '<li><a href="#info" id="anIndividualRecord" data-key="' + singleRecord.id + '" >';
}

Объединение нескольких varS из той же области так же просто, как удаление var оператор из одной строки и добавление связанных идентификаторов в другой var в том же объеме.

var len = results.rows.length,
    i,
    individualRecord; // added identifier, only need one var'd copy of each identifier

//loop around each record in the database
for (i = 0; i < len; i++) {
    individualRecord = results.rows.item(i); // removed var

    //create list
     individualRecord = ''; // removed var
     individualRecord = '<li><a href="#info" id="anIndividualRecord" data-key="' + individualRecord.id + '" >';

Вы не можете повторно объявить переменную, в этом случае вы делали это: IndividualRecord.
и jsHint, вероятно, выбрасывает, что вам нужно объединить var declarations из-за подъема в JavaScript.

(function () {
  var len = results.rows.length,
    i,
    individualRecord,
    singleRecord;

  for (i = 0; i < len; i++) {
    singleRecord = results.rows.item(i);
    individualRecord = '';
    individualRecord = '<li><a href="#info" id="anIndividualRecord" data-key="' + individualRecord.id + '" >';
  }
}());

Есть в основном три вещи, которые вы можете сделать с переменной: Declaration, Initialization а также Assignment, Ключевое слово var указывает объявление переменной, т. е. выполняется только один раз для каждой переменной. Это часто приходит вместе с Initialization, установив начальное значение переменной. Правильный путь:

// add individualRecord here
var len = results.rows.length, i,singleRecord, individualRecord;

//loop around each record in the database
for (i = 0; i < len; i++) {
    // omit the "var" here
    singleRecord = results.rows.item(i);

    // and here as well
     individualRecord = '';

Javascript делает некоторые неприятные вещи, которые называются "подъем", поэтому важно знать тонкие различия.

Другие вопросы по тегам