godsplane
@godsplane

Ответьте, пожалуйста, на вопросы по ES6?

1.
Ключевое слово let позволяет объявлять переменные с ограниченной областью видимости — только для блока {...}, в котором происходит объявление. Это называется блочной областью видимости. Вместо ключевого слова var, которое обеспечивает область видимости внутри функции, стандарт ES6 рекомендует использовать let.


То есть я все еще могу задавать глобальные переменные с помощью var, но если мне требуется изменить эту переменную внутри функции или класса, то лучше использовать let?

2.
Другой формой объявления переменной с блочной областью видимости является ключевое слово const. Оно предназначено для объявления переменных (констант), значения которых доступны только для чтения. Это означает не то, что значение константы неизменно, а то, что идентификатор переменной не может быть переприсвоен.


Это означает что если у меня есть переменная const foo = bar , то я не могу в последствии написать foo = 2+2? Для чего нужен const на реальном примере?

3. Что вообще есть es6? ТО есть если не буду использовать эти рекомендации у меня же все равно будет работать код, так что все эти let, const нужно только для того чтобы было понятнее? Как БЭМ?

4. Стрелочные функции нужны только для того чтобы код был короче? Или они влияют еще на что-то?

5. На примере: зачем нужен super?

6.
ES6 предоставяляет более простой способ вставки значения переменной или результата выражения (т.н. "интерполяцию"), которые рассчитываются автоматически.

${ ... } используется для вычисления значения переменной/выражения.
`` Обратные кавычки используются как разделитель для таких случаев.

let user = 'Кевин';
console.log(`Привет, ${user}!`); // Привет, Кевин!

Зачем это нужно, если я могу написать так
let user = 'Кевин';
console.log('Привет' user!); // Привет, Кевин!


7. Может пару советов от вас, что действительно нужно знать из es6, если уровень js не очень высокий?
  • Вопрос задан
  • 386 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Может пару советов от вас, что действительно нужно знать из es6, если уровень js не очень высокий?


Начните с того, чтобы перестать делить язык на стадии его стандартизации.
Есть язык javascript (ecmascript). И вы, как js-программист, должны его знать полностью в последней редакции.
Ответ написан
@dimoff66
Кратко о себе: Я есть
1. Да, кроме того, что var использовать просто незачем.

2. const на реальном примере - любая переменная, которая не будет менять своего значения.

const date1 = '01/02/2019'
const date2 = '07/02/2019
const params = { dateFrom, dateTo )
const diff = getDatesDiff(date1, date2)
return diff


3. Да, почти весь es6 это синтаксический сахар, чтобы код выглядел яснее, логичнее и писать его было проще и приятнее. Это убыстряет разработку и делает js полноценным современным языком, а не скриптовой недоделкой.

4. Стрелочные функции запоминают контекст в котором они создаются, для обычных функций, если они используются вне модуля где созданы, контекст придется указывать явно. То есть у стрелочных функций нет своего this, у обычных есть.

5. -

6.
Зачем это нужно, если я могу написать так
let user = 'Кевин';
console.log('Привет' user!); // Привет, Кевин!


Вы можете написать как угодно, но этот код даже не скомпилируется. Вы видимо не знаете основ синтаксиса Js

7.
Может пару советов от вас, что действительно нужно знать из es6, если уровень js не очень высокий?


Знать вообще ничего не надо, надо понимать как это работает. Если нет понимания по поводу всех моментов js, то думать о es6 смысла нет
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Ох, сдается мне пока рано всё это обсуждать. Есть у меня ощущение, что критическая масса практики еще не накоплена, шишки не набиты, грабли не собраны, говорить пока не о чем...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект