Автор оригинала: FreeCodeCamp Community Member.
Мария Дминского
Добро пожаловать в частью I Узнайте ES6 путь допинга, Серия создана, чтобы помочь вам легко понять ES6 (Ecmascript 6)!
Во-первых, что такое дело с Const , Пусть и var ?
Вы, наверное, был свидетелем одной из этих ситуаций – Пусть и/или Const быть замененным для var или Пусть и Const Используется в том же коде одновременно или даже более озадаченным, Пусть , Const И var все используются сразу!?
Эй, не волнует, я получил тебя. Давайте очистим этот туман вместе:
конститут
Преимущества:
- Полезно, если вы устанавливаете переменную, которую вы не планируете изменять.
- Защищает и предотвращает ваши переменные от переназначения.
- На компиляционных языках существует повышение эффективности времени выполнения вашего кода и, следовательно, общий повышение производительности VS, используя простое «OL » var Отказ
Остерегаться:
- Работает как он должен в хроме и Firefox. Но не в сафари. Вместо этого он действует как нормальная переменная, как будто это было Вар, И, таким образом, можно переназначить.
- Обычно существует соглашение о программировании для установки имени во всех загрязнениях, чтобы показать другим, читая ваш код, что значение Const ценность не должно быть изменено – вы будете свидетельствовать как в нижнем регистре, так и в Caps Const Кодирование ситуаций. Просто что-то знать о.
Примеры:
// sometimes used as lowercase as when setting up your server. const express = require('express'); const app = express(); // sometimes uppercase. const DONT_CHANGE_ME_MAN = "I ain't changing for no one, man." // change attempt #1 const DONT_CHANGE_ME_MAN = "I told I ain't changing for no one." // change attempt #2 var DONT_CHANGE_ME_MAN = "Still not changing, bro." // change attempt #3 DONT_CHANGE_ME_MAN = "Haha, nice try, still not happening." // same error for all 3 attempts, const value stays the same: Uncaught TypeError: Identifier 'const DONT_CHANGE_ME_MAN' has already been declared. // DONT_CHANGE_ME_MAN still results in "I ain't changing for no one, man."
Имеет ли это смысл?
позволять
Студенты и опытные программисты, исходящие из рубина или фона Python, будут любить Пусть, Как он обеспечивает обстановку блока!
Как вы перенесете на страну ES6, вы можете заметить, что вы наращиваете на новый Пусть Метаморфоза, взявшись за вашим стилем кодирования и с меньшей вероятностью использования var больше. С Пусть Теперь сейчас намного яснее, откуда ваши ценности приходят, не беспокоясь о них подниматься!
Преимущества:
- Блок-охватывание, значения вашей переменной именно являются именно так, как они должны быть в этой текущей области, и они не поднимаются как с var Отказ
- Супер полезно, если вы не хотите, чтобы ваши ценности были перезаписаны, как в цикле для цикла.
Остерегаться:
- Вы не всегда можете использовать Пусть Отказ Например, в ситуациях, когда переменные не так легко блокируют навес, var может быть удобнее.
Примеры:
// When using var what do we get? var bunny = "eat carrot"; if(bunny) { var bunny = "eat twig"; console.log(bunny) // "eat twig" } console.log(bunny)// "eat twig" // When using let what do we get? let bunny = "eat carrot"; if(bunny) { let bunny = "eat twig"; console.log(bunny) // "eat twig" } console.log(bunny)// "eat carrot"
Вы видите разницу? Это все о прицелах. С var Он имеет доступ к родительскому/внешнему охвату, и, таким образом, может изменить значение внутри оператора IF. В отличие от Пусть который находится в блоке и может быть изменен только в текущем объеме.
Пусть супер прямо вперед. Это как человек, который говорит прямо к вашему лицу и говорит вам именно то, что им нужно, а тогда и там, пока var Делает это также, но иногда может ответить с неожиданными ответами – из-за подъема и доступа к внешним переменным облагания. В зависимости от ситуации ни один может быть в вашу пользу.
Еще один отличный пример о преимуществах Пусть :
Скажем, вы хотите создать игровую доску 30 Divs, и каждый имеет свою ценность. Если бы вы делали это с var , Я Индекс будет перезаписан на каждую итерацию – каждый дивы будет иметь значение 30! Ики!
С другой стороны, с Пусть Каждый DIV имеет свою собственную ценность, поскольку собственный объем DIV поддерживается для каждой итерации! Увидеть разницу:
// with var. See example live: https://jsfiddle.net/maasha/gsewf5av/ for(var i= 0; i<30; i++){ var div = document.createElement('div'); div.onclick = function() { alert("you clicked on a box " + i); }; document.getElementsByTagName('section')[0].appendChild(div); } // with let. See example live: https://jsfiddle.net/maasha/xwrq8d5j/ for(let i=0; i<30; i++) { var div=document.createElement('div'); div.onclick = function() { alert("you clicked on a box " + i); }; document.getElementsByTagName('section')[0].appendChild(div); }
Поздравляю! Вы сделали это через Узнайте ES6 путь допинга Часть я и теперь вы знаете основные различия между const, пусть и var! Woohoo! Ты рокстар, ты:)
Держите свои знания, обновляемые по вкусу и следуя больше Узнайте ES6 путь допинга скоро на среднем!
Часть I: const, давай
Часть II: (стрелка) => функции и «это» ключевое слово
Часть III: Шаблонные литералы, Распределительные операторы и генераторы!
Часть IV: параметры по умолчанию, деструктурное назначение и новый метод ES6!
Часть V: Классы, транспилинг ES6 код и больше ресурсов!
Вы также можете найти меня на Github ❤ https://github.com/mashadim.