Нещодавно я писав багато кодів ES6 для io.js. У дикій природі не так багато коду, чому можна навчитися, тому я відчуваю, що я визначаю свої власні умовності, коли я йду.
Моє питання про те, коли використовувати constпроти let.
Я застосовував це правило: Якщо можливо, використовуйте const. Використовуйте лише letякщо ви знаєте, що його значення потрібно змінити. (Ви завжди можете повернутися назад і змінити constзначення a, letякщо пізніше виявиться, що вам потрібно змінити його значення.)
Основна причина цього правила - це легко застосовувати послідовно. Сірих ділянок немає.
Справа в тому, що коли я застосовую це правило, на практиці 95% моїх декларацій є const. І це мені дивно виглядає. Я використовую лише letдля таких речей, як iу forциклі, або іноді для таких речей, як накопичені підсумки Фібоначчі (що в реальному житті не дуже багато). Мене це здивувало - виявляється, 95% 'змінних' у моєму коді ES5 на сьогодні були для значень, які не змінюються. Але бачити constвесь мій код почувається якось неправильно.
Отже, моє запитання: чи нормально constтак багато використовувати? Чи справді я повинен робити такі речі const foo = function () {...};?
Або я повинен зарезервувати constтакі ситуації, коли ти чітко кодуєш літерал у верхній частині модуля - такий, як ти робиш з великими літерами, як const MARGIN_WIDTH = 410;?
function foo() {...}краще, ніж<anything> foo = function() {...}
function foo() {...}може викликати незначну плутанину при налагодженні через підйом. Також його існування означає, що у нас є дві конструкції, які роблять те саме, але одна з них працює лише у дуже специфічному контексті. (Ви можете використовувати вираз функції будь-де, де може існувати вираз, але ви можете використовувати декларацію функції лише на рівні заяви.) Якщо ви віддаєте перевагу стислості, проблема може полягати лише в тому, що в синтаксисі виразу функції використовується все слово function.
constце багато.