ES6 - let

ES6 - let

Вместо var сейчас как правило пользуются let. То есть простое присваивание переменной сейчас не

var warriors = 3

а

let warriors = 3

Для чего вообщем было выдумывать новый синтаксис? 1-ое и самое ключевое различие let от var, это то, собственно что она формируется изнутри блока в котором обьявлена. Которое в свою очередь упрощает работу с if, while, for. К примеру, на ES5 мы пишем подобный код

ES6 - let - ReactWarriors | Профессиональные онлайн-курсы по ReactJS

Такой код выведет 5 и 5, хотя по логике в обычном языке у нас бы вывелось 5 в блоке if, а извне, например как это уже иной блок, вывелось бы 3. Но например как у нас javascript владеет кое-какими проблемами, то здесь 1 переменная на весь код, она описывается наверху кода, а в блоке if она элементарно трансформируется. Но, по обычному, мы ждем, собственно что мы создадим новую переменную изнутри if. Во избежании этой проблемы, мы можем использовать let. С ним переменная изнутри if станет независящей переменной изнутри блока

ES6 - let - ReactWarriors

То есть, используя let, вы сможете быть уверенны, собственно что переменная всякий раз станет доступна лишь только изнутри блока. В случае если же мы удалим наружное объявление переменной, то переменная в блоке выведется нормально, а 2 console.log выдаст ошибку, например как переменна а есть лишь только в блоке и не заметна за пределами етого блока.

ES6 - let - ReactWarriors

2-ое различие, это то, собственно что переменную let невозможно переопределить. В es5 вы сможете например написать

ES6 - let - ReactWarriors

Етот код переопределит переменную. Let покажет ошибку про повторное переопределение переменной.

ES6 - let

Такая же ситуация будет с циклами. Если например есть 2 цикла а мы в каждом пользуемся let, то они станут 2мя локальными переменными. А извне данная переменная станет не заметна.

ES6 - let

3-e различие, это то, собственно что let в цикле создает отдельную переменную для всех итераций. В ES5 обыкновенная проблема с замыканиями в цикле будет выглядеть так.

ES6 - let

Например создадим массив функций, где любая из которых станет выводится в консоль. В случае если мы вызовем елемент массива warriors, то мы увидим 10 в консоли. Ето вследствие того, собственно что переменная “i” переприсваивается и замыкание считается совокупным для всех итераций. В случае если мы пользуемся let, то такие проблемы отсутствуют. Потому что переманная создасться для каждой итерации.

ES6 - let - ReactWarriors

Если у вас был опыт изучения бесплатного курса javascript с нуля или проходили курс по JS для начинающих хочу вам посоветовать React JS обучение на нашем youtube канале ReactWarriors

Если у вас возникли какие-то вопросы, пишите их в наш телеграмм-чат.

Поделись знаниями: