Я в «эффективный JavaScript» обучение в @Paypaleng Douglas Crockford и не могу выразить, какой проницательный опыт был! Сегодня я понял, почему использование явных полумилонов так важно в JS. Поделится моим идеем в ближайшее время. #javascript #Веб-разработка #Paypal.
Gotchas, где автоматическое введение с запятой может привести к ошибкам
Я сделал эффективное обучение JavaScript по Дуглас Крукфорд несколько месяцев спустя. Одна вещь, которая застряла со мной с тех пор, является важность использования явных точек запятых в JavaScript. На некоторое время я ленил избегал писать ;
и предполагая, что парсер сделает мою работу правильно для меня. В этом посте я хочу представить некоторые примеры, которые изменили мое мышление.
Пример 1.
Что вы ожидаете, что вывод этого будет?
const test = () => { return { ok : true } } console.log(test())
Вы ожидаете, что вывод этого будет объект
Свойство Хорошо
Установить на правда
Отказ Но вместо этого вывод – неопределенный
. Это так, потому что, поскольку вьющиеся скобка начинается на новой строке, автоматическое завершение запятой меняет вышеуказанный код к этому:
const test = () => { return; { ok : true } }
Исправить : Используйте фигурные брекеты справа от возврата и явных запятых:
const test = () => { return { ok : true } };
Пример 2.
const a = 1 const b = 2 (a+b).toString()
Как вы думаете, что происходит в приведенном выше коде? Мы получим ошибку Uncaught ShareError: B не определен.
Это связано с тем, что скобка на третьей строке интерпретируется как аргумент функции. Этот код преобразуется в это:
const a = 1; const b = 2(a+b).toString();
Я научился быть осторожным при использовании автоматической вставки полутолон.
Дальнейшее чтение –
Вы узнали что-то новое? Есть комментарии? Знать devgoke? Tweet Me @ shrutikapoor08
«Я всегда говорю женщинам: когда вы дойдете до вершины, вернемся в лифт и принесите женщину с тобой» – эунис Кеннеди Шрайвер. Мудрые слова. #fempire #womenintech # славы
Оригинал: “https://www.freecodecamp.org/news/codebyte-why-are-explicit-semicolons-important-in-javascript-49550bea0b82/”