Линтер говорит вам, что вы должны объявить i
и comment
в тот же момент, когда интерпретатор видит, что объявлена переменная, которая будет либо в верхней части самой внутренней функции,или если вы уже на верхнем уровне, на самом верху верхнего уровня.Например, для вашего кода:
var i;
var comment;
var html;
comment = [
{"name": "name1", "date": "00-00-0000", "body": "comment here1"},
{"name": "name2", "date": "00-00-0000", "body": "comment here2"},
{"name": "name3", "date": "00-00-0000", "body": "comment here3"}
];
for (i=0;i<comment.length;i++){
html = "<div class='commentBox'><div class='leftPanelImg'><img src='images/Reviews/Comment%20pic.jpg'></div><div class='rightPanel'><span>"+comment[i].name+"</span><div class='date'>"+comment[i].date+"</div><p>"+comment[i].body+"</p></div><div class='clear'></div></div>"
$('#container').append(html);
}
Если вы этого не сделаете, вы можете запутаться из-за неинтуитивных проблем с подъемом var
- вот для чего нужно правило линтинга.(Это не ошибка интерпретатора Javascript, это всего лишь ошибка, выдаваемая вашим линтером.)
Тем не менее, вы можете вместо этого использовать современный синтаксис с const
и let
, которые не являются поднял, и вы можете использовать методы массива вместо циклов for
для более функционального и краткого кода, если хотите:
const comment = [
{"name": "name1", "date": "00-00-0000", "body": "comment here1"},
{"name": "name2", "date": "00-00-0000", "body": "comment here2"},
{"name": "name3", "date": "00-00-0000", "body": "comment here3"}
];
comment.forEach(({ name, date, body }) => {
const html = "<div class='commentBox'><div class='leftPanelImg'><img src='images/Reviews/Comment%20pic.jpg'></div><div class='rightPanel'><span>"+name+"</span><div class='date'>"+.date+"</div><p>"+body+"</p></div><div class='clear'></div></div>"
$('#container').append(html);
});
Вы также можете рассмотреть возможность использования современного линтера, такого как ESLint.JSLint довольно старый и не очень хорошо разбирается в хорошем синтаксисе, который позволяет нам современный JS.