HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: const, javascript, js, let, объявление переменных</p>
1 <p>Теги: const, javascript, js, let, объявление переменных</p>
2 <p>Многие знают, что для объявления переменных в JS нежелательно применять ключевое слово<strong>var</strong>. Но не все знают, что ключевое слово<strong>let</strong>тоже лучше не использовать. Дело в том, что объявленные с его помощью переменные могут быть переназначены, что усложнит анализ кода. И если вы применяете let, то надо учитывать возможные побочные эффекты. Например, вы можете случайно присвоить переменной неверное значение, что в итоге приведёт к дополнительной трате времени на отладку. А оно вам надо?</p>
2 <p>Многие знают, что для объявления переменных в JS нежелательно применять ключевое слово<strong>var</strong>. Но не все знают, что ключевое слово<strong>let</strong>тоже лучше не использовать. Дело в том, что объявленные с его помощью переменные могут быть переназначены, что усложнит анализ кода. И если вы применяете let, то надо учитывать возможные побочные эффекты. Например, вы можете случайно присвоить переменной неверное значение, что в итоге приведёт к дополнительной трате времени на отладку. А оно вам надо?</p>
3 <p>Альтернатива let - ключевое слово<strong>const</strong>. Да, оно тоже не даёт стопроцентную гарантию отсутствия проблем, но упрощает анализ кода и запрещает переназначения. Да и вообще, зачем вам let, если во многих случаях код, который переназначает значения переменных, можно извлечь в отдельную функцию.</p>
3 <p>Альтернатива let - ключевое слово<strong>const</strong>. Да, оно тоже не даёт стопроцентную гарантию отсутствия проблем, но упрощает анализ кода и запрещает переназначения. Да и вообще, зачем вам let, если во многих случаях код, который переназначает значения переменных, можно извлечь в отдельную функцию.</p>
4 <p>Рассмотрим простой пример с let:</p>
4 <p>Рассмотрим простой пример с let:</p>
5 let discount; if (isLoggedIn) { if (cartTotal &gt; 100 &amp;&amp; !isFriday) { discount = 30; } else if (!isValuedCustomer) { discount = 20; } else { discount = 10; } } else { discount = 0; }<p>А теперь то же самое, но с<strong>извлечением в функцию</strong>:</p>
5 let discount; if (isLoggedIn) { if (cartTotal &gt; 100 &amp;&amp; !isFriday) { discount = 30; } else if (!isValuedCustomer) { discount = 20; } else { discount = 10; } } else { discount = 0; }<p>А теперь то же самое, но с<strong>извлечением в функцию</strong>:</p>
6 const getDiscount = ({isLoggedIn, cartTotal, isValuedCustomer}) =&gt; { if (!isLoggedIn) { return 0; } if (cartTotal &gt; 100 &amp;&amp; !isFriday()) { return 30; } if (!isValuedCustomer) { return 20; } return 10; }<h2>Так просто?</h2>
6 const getDiscount = ({isLoggedIn, cartTotal, isValuedCustomer}) =&gt; { if (!isLoggedIn) { return 0; } if (cartTotal &gt; 100 &amp;&amp; !isFriday()) { return 30; } if (!isValuedCustomer) { return 20; } return 10; }<h2>Так просто?</h2>
7 <p>В принципе, да, однако программировать без let может всё равно показаться сложным, но это только поначалу. Зато в результате ваш код выиграет с точки зрения читабельности и станет менее сложным. Да и вообще, благодаря полезной привычке<strong>писать код без let</strong>, вы станете более дисциплинированным, ведь станете разбивать код на несколько мелких, но зато<strong>более управляемых</strong>функций. В конечном итоге код выиграет в плане разделения задач, а кодовая база станет более поддерживаемой.</p>
7 <p>В принципе, да, однако программировать без let может всё равно показаться сложным, но это только поначалу. Зато в результате ваш код выиграет с точки зрения читабельности и станет менее сложным. Да и вообще, благодаря полезной привычке<strong>писать код без let</strong>, вы станете более дисциплинированным, ведь станете разбивать код на несколько мелких, но зато<strong>более управляемых</strong>функций. В конечном итоге код выиграет в плане разделения задач, а кодовая база станет более поддерживаемой.</p>
8 <p>Кстати, вот предлагаемая конфигурация<strong><a>ESLint</a></strong>:</p>
8 <p>Кстати, вот предлагаемая конфигурация<strong><a>ESLint</a></strong>:</p>
9 <p><a>Источник</a></p>
9 <p><a>Источник</a></p>
10  
10