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 > 100 && !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 > 100 && !isFriday) { discount = 30; } else if (!isValuedCustomer) { discount = 20; } else { discount = 10; } } else { discount = 0; }<p>А теперь то же самое, но с<strong>извлечением в функцию</strong>:</p>
6
const getDiscount = ({isLoggedIn, cartTotal, isValuedCustomer}) => { if (!isLoggedIn) { return 0; } if (cartTotal > 100 && !isFriday()) { return 30; } if (!isValuedCustomer) { return 20; } return 10; }<h2>Так просто?</h2>
6
const getDiscount = ({isLoggedIn, cartTotal, isValuedCustomer}) => { if (!isLoggedIn) { return 0; } if (cartTotal > 100 && !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