Объединение выражений "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 + '" >';
}
Объединение нескольких var
S из той же области так же просто, как удаление 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 делает некоторые неприятные вещи, которые называются "подъем", поэтому важно знать тонкие различия.