For-of и браузеры
Оказывается, браузеры по-разному относятся к итерированию цикла for-of. Судите сами:
for(const a of []) ; // chrome: ok, ff: syntax error
На что ругается Firefox? Говорит, что a указана, как константа, а используется как переменная. Но почему?
for(let a of [1, 2])
setTimeout(() => alert(a));
- Chrome: 1, 2
- Firefox: 2, 2
Всё просто. Chrome каждую итерацию пересоздаёт scope, а Firefox довольствуется одним. И если с const ошибка вылезет сразу (правда только в Firefox). То в случае чего-нибудь асинхронного ждите трудно-вылавливаемые баги, которые проявятся только в Firefox-е. В спеку мне лезть лень, но код генерируемый babel-ем ближе к Chrome-варианту. Кто прав?
Комментарии
Оставить комментарий
modules/comment
window._Comment_content_article_125 = new classes.Comment( '#comment_block_content_article_125',
{
type: 'content_article',
node_id: '125',
user: 1,
user_id: 0,
admin: 0,
view_time: null,
msg: {
empty: 'Комментарий пуст',
ask_link: 'Ссылка:',
ask_img: 'Ссылка на изображение:' }
});