@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 не очень высокий?
  • Вопрос задан
  • 336 просмотров
Решения вопроса 3
delphinpro
@delphinpro
frontend developer
Может пару советов от вас, что действительно нужно знать из es6, если уровень js не очень высокий?


Начните с того, чтобы перестать делить язык на стадии его стандартизации.
Есть язык javascript (ecmascript). И вы, как js-программист, должны его знать полностью в последней редакции.
Ответ написан
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Rings of Saturn - The Husk
То есть я все еще могу задавать глобальные переменные с помощью var, но если мне требуется изменить эту переменную внутри функции или класса, то лучше использовать let?
Ты не видишь какой-то явной разницы между глобальными переменными и локальными? В случае с локальной let ты можешь быть уверен, что никто другой не изменит где-то извне твою переменную.

Для чего нужен const на реальном примере?
Начни с базовых определений, что такой константа? Это заданное, неизменяемое значение, в контексте JS конечно не прямо таки не изменяемо, переопределить переменную ты не сможешь, но если в ней будет массив, сделать пуш в него - без проблем.

Что вообще есть es6?
Это JS, если точнее Ecma Script и версия его спецификации, уже, кстати ES9 вроде бы есть. Это просто так скажем обновления языка.

У этого есть свои минусы, основной - старые браузеры, новые стандарты не везде поддерживаются, просто потому, что это веб. Мать Анархия. Но эти минусы нивилирует такая штука как Babel и полифиллы. Бабель транспилирует новый стандарт в старый, полифилл - "ручная" реализация какой-то фичи, на случай если в браузерном API её ещё нет.

Зачем это нужно, если я могу написать так (про шаблонные строки)

Шаблонная строка - это... Шаблонная строка! Она решает например проблему многострочности, попробуй выполнить:

const a = 'One
Two
Three';

Но этот код невалидный, каждую новую строку раньше приходилось конкатенировать, уж не говоря об экранировании ковычек, шаблонные строки решают определнные проблемы, делают код читабельнее, а разработку приятнее.

Может пару советов от вас, что действительно нужно знать из es6, если уровень js не очень высокий?
ES6 даёт возможность писать более красивый код, более читаемый. в первую очередь он даёт очень многое тебе, как разработчику. А так, ты можешь и на старом ES5 писать и беды незнать. (На самом деле знать и страдать)
Ответ написан
@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 developer
Ох, сдается мне пока рано всё это обсуждать. Есть у меня ощущение, что критическая масса практики еще не накоплена, шишки не набиты, грабли не собраны, говорить пока не о чем...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 сент. 2019, в 20:46
952 руб./в час
17 сент. 2019, в 20:41
10000 руб./за проект
17 сент. 2019, в 20:30
700 руб./в час