ES6 #12 Символы (Symbols)

  Рет қаралды 23,800

webDev

webDev

Күн бұрын

#YauhenK #webDev #ECMAScript #ES6
Всех приветствую в курсе «ES6».
В данном видео-курсе мы с вами рассмотрим все ключевые нововведения в стандарте ECMAScript 2015. Разберём практические примеры, а так же проведём аналогию стандартов ES6 и ES5. В своё время это было самое крупное и революционное обновление стандарта, которое добавило кучу новых возможностей начиная новыми способами объявления переменных и новым типом функций, заканчивая новым типом данных symbol, классами, итераторами и генераторами. Все эти фичи мы подробно изучим.
✒ Репозиторий курса:
✔ GitHub: github.com/Yau...
✒ Используемые ресурсы и инструменты:
✔ Atom (Редактор кода): atom.io/
✔ Node.js: nodejs.org/en/
✔ Browserify/Watchify: github.com/bro...
✔ NPM http-server: www.npmjs.com/...
✒ Полезные ссылки:
✔ Exploring ES6: exploringjs.com...
✔ Babel: babeljs.io/doc...
✒ Полезные курсы на канале:
✔ JavaScript: • JavaScript
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R...
✒ Автор курса:
✔ KZbin: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenK...
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/Yau...
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/Yau...

Пікірлер: 92
@igorlezhnin323
@igorlezhnin323 4 жыл бұрын
Прекрасное объяснение материала. У вас талант!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Спасибо)
@p_levin
@p_levin 5 жыл бұрын
Я так и не понял одного. Для каких конкретных задач они нужны? Сохранение состояния?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Нет. Создание уникальных ключей внутри объектов. Когда объекты действительно большие. Либо используются при создании библиотеки для уникальных имён и не допущения конфликта имён снаружи библиотеки
@denonbasf3117
@denonbasf3117 4 жыл бұрын
learn.javascript.ru/symbol
@АнастасияШелухина-з7е
@АнастасияШелухина-з7е 2 жыл бұрын
читала-читала и не совсем понимала, посмотрев видео, стало понятнее)) спасибо
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@ЧеловекБудущего-л8ю
@ЧеловекБудущего-л8ю Жыл бұрын
вот что я ценю, спасибо
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Пожалуйста
@parnasmi
@parnasmi 2 жыл бұрын
действительно крутое объяснение js symbol ов. Огромное спасибо! Даг бог вам здоровье!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Спасибо
@ivant.7062
@ivant.7062 2 жыл бұрын
Спасибо!! Всё чётко и понятно!!!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@МаксКондратенко-ц2е
@МаксКондратенко-ц2е 6 жыл бұрын
Классные уроки, только не забрасывай, жду с нетерпением, async await
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо! Буду стараться и дальше развивать канал
@СергейФедоров-о6х1ш
@СергейФедоров-о6х1ш Жыл бұрын
спасибо!!!!!!!!!!
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Пожалуйста
@vladbelov5875
@vladbelov5875 3 жыл бұрын
Спасибо большое за урок! Теперь стало понятно
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Спасибо за отзыв
@Victor-il9gm
@Victor-il9gm 2 жыл бұрын
Спасибо, познавательно !
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@СергейУланов-п2у
@СергейУланов-п2у 2 жыл бұрын
Спасибо! все понял
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
👍
@serhioramires3166
@serhioramires3166 7 ай бұрын
Как ц Вас получилось, что два символа имеют одинаковое имя? Если имена переменных отличаются, а олинаковые только дополнительные описания котоорые вообще не являются обязательными?
@paranoia-1994
@paranoia-1994 3 жыл бұрын
Законспектировал большую часть видео, думаю на собеседовании не упаду грязь в лицом после такого исчерпывающего видео про Symbol
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Не должны!)
@chessclub92
@chessclub92 2 жыл бұрын
Спасибо
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@weTRONer
@weTRONer 3 жыл бұрын
nice explanation. thnks
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
You’re welcome
@user-888azim-97
@user-888azim-97 2 жыл бұрын
спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@karlenkm4230
@karlenkm4230 5 жыл бұрын
spasibo kruta abisnil!!!!
@Alex_Delina
@Alex_Delina 3 жыл бұрын
Благодарочка)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста)
@vikavika4644
@vikavika4644 3 жыл бұрын
спасибо, видео про использование symbol в map или weakmap было бы классно посмотреть)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Мне самому было бы интересно посмотреть на это
@singlebw4065
@singlebw4065 Жыл бұрын
за 2,5 года работы ни разу не понадобился данный тип
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
За 7 лет работы так и не пригодился)
@ВасилийЗайцев-ь4о
@ВасилийЗайцев-ь4о 2 жыл бұрын
6:33 Каким образом можно обратиться к полю [Symbol('password')], не делая символ глобальным?
@ghambaryanschannel2088
@ghambaryanschannel2088 2 жыл бұрын
let sym = Symbol('password') let person = { name: "Jack", age: 20, [sym]: 'Jack2020' } console.log(person[sym])
@ВасилийЗайцев-ь4о
@ВасилийЗайцев-ь4о 2 жыл бұрын
​@@ghambaryanschannel2088 этот способ очевиден)) В ролике говорится лишь о том, как "вытащить" значение глобального символа 06:33. Пример из ролика: let person = { name: 'Jack', age: 20, [Symbol.for('password')]: 'Jack20' }; console.log(person[Symbol.for('password')]); А я о другом... Я об объявлении НЕ глобального символа в литерале объекта. И способу обращения к этому свойству) Без занесения его в реестр... let person = { name: 'Jack', age: 20, [Symbol('password')]: 'Jack20' //Symbol без for. Символ - НЕ глобальный. }; console.log( ? );
@radist126
@radist126 3 жыл бұрын
А где symbol.iterator о котором ссылка в итераторах? Или я прозевал чтото ?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Не совсем понял вопрос. Я забыл добавить ссылку, или рассказать тему?
@radist126
@radist126 3 жыл бұрын
@@YauhenKavalchuk в видео по итераторам kzbin.info/www/bejne/foXSdaiobKyeodk вы говорите что нужно создать свойство Symbol.iterator и ссылаетесь на это видео по Symbol но здесь ничего нет по Symbol.iterator. Таким образом не понятно , что делает Symbol.iterator и откуда оно взялось в итераторах
@АлександрСтепанов-ц8э
@АлександрСтепанов-ц8э 3 жыл бұрын
👍
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
👍
@АлександрСтепанов-ц8э
@АлександрСтепанов-ц8э 3 жыл бұрын
@@YauhenKavalchuk як я зрозумів, що створений через for символ є глобальним, наприклад Symbol.for(‘mySymbol’) , і з ним можна взаємодіяти в будь- якій частині коду, проте , як тоді з проблемою повторенням імен властивостей, коли ми знову ім‘я властивості вкажем, як Symbol.for(‘mySymbol’) то перезапишемо раніше створену? В чому різниця з тим, коли я два рази ключ вкажу однаковий без використання Symbol?А коли без for, то ніяк з властивістью/методом не зможу взаємодіяти?
@VladDehtiarov
@VladDehtiarov 4 жыл бұрын
Какое практическое применение?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
При обычной разработке нету. А так, как было озвучено в видео: при создании библиотек для добавления уникальных имён. Лично я ни разу не применял символы
@alexb.2616
@alexb.2616 7 ай бұрын
@@YauhenKavalchuk Спасибо и за отличное видео, и за этот ответ. Кучу всего пересмотрел - и Ваш ролик самый понятный.
@hardcore8224
@hardcore8224 2 жыл бұрын
Зачем создавать символ в объекте без "for" если невозможно получить к нему доступ?
@Atikan37
@Atikan37 4 ай бұрын
потому, что при создании символа с конструкцией for больше работает как исключение. Если символ создан без for то к такому свойству в объекте не будет доступа и его нельзя будет "вытащить". Вытащить не получится: не перебрав массив или не обратившись по имени. Так же нельзя изменить символ извне.
@ДмитрийНормов-ю6ц
@ДмитрийНормов-ю6ц 3 жыл бұрын
Дикция неплохая, но... Ключевые правила и идеи каждого каста лучше дополнительно выводить текстом в виде каких-то правил/тезисов на экран, как это делают многие другие блогеры. И разные анимашек можно бы добавить хоть немного.
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Это один из первых курсов, который появился на канале года 2 назад. На тот момент скилл монтажа не так был развит. Теперь всё намного нагляднее
@juliaovod
@juliaovod 3 жыл бұрын
Подскажите, пожалусйта, название трека в начале видео :-)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Ох, уже и не вспомню, что-то из бесплатной медиатеки KZbin
@k0dzer0
@k0dzer0 4 жыл бұрын
Ну, Евгений, у тебя самый нормальный видос по символу в РУ сегменте молодец. Люди делают замечания, что читаешь, у меня тоже такая проблема была на видосах. Просто там другой подход используется, чтобы научиться говорить естественно - пересказывать.Кстати легко, посмотри метод Станиславского - актёрская игра, чтобы понять суть, что нужно держать в голове. Далее голосом сам себе или воображаемому апоненту в споре доказываешь, предположим что такое символ, раза три, затем из полученного Г материала нарезаешь в Адобе примьере суть, лучшие фрагменты, уверен все пройдёт легко, если воспользуешься этим актерским приёмом.
@davtian1674
@davtian1674 6 жыл бұрын
console.log(person) >>> Object {name: "Jack", age: 20, Symbol(password): "Jack20"} вот так можно получит сивол
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо за информацию!
@foxf614
@foxf614 6 жыл бұрын
Очень круто и доступно, спасибо! Но я не очень понял - если в объекте объявлять свойство символом без for - как получить значение такого ключа?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Если вы мне назовёте хотя бы один адекватный кейс зачем это может понадобиться, то я расскажу)
@foxf614
@foxf614 6 жыл бұрын
@@YauhenKavalchuk Ну... собственно я не смог придумать где вообще можно использовать символ кроме как в свойствах объекта) Может быть Вы могли бы описать другой вариант их использования, тогда я смогу понять.. Наверное:)
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Не могу, ни разу не использовал их сам. Вообще они часто применяются при написании собственных библиотек, или плагинов для создания уникальных ключей, но думаю, в ближайшее время ни вам ни мне это не грозит)
@foxf614
@foxf614 6 жыл бұрын
@@YauhenKavalchuk Понял, спасибо!Отлегло:)
@EdwardTeach-e7d
@EdwardTeach-e7d 5 жыл бұрын
Почему я тогда весь объект не могу построить на символах?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
А какой в этом смысл?
@chirog13
@chirog13 4 жыл бұрын
Почему символ задается через квадратные скобки?
@ГлебЧетвертак-щ7з
@ГлебЧетвертак-щ7з 4 жыл бұрын
Это динамическое значение ключа объекта, или как-то так. Суть в том, что в качестве названия ключа можешь передать переменную, значение которой и будет ключем. const keyName = 'age'; const person = {name: 'Vasya', [keyName]: 20}; Лучше объясняется в видео на этом канале, называется "ES6 #7 Объекты (Object)".
@chirog13
@chirog13 4 жыл бұрын
@@ГлебЧетвертак-щ7з Спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Да, Глеб всё верно сказал)
@parahumanoid
@parahumanoid 3 жыл бұрын
@@ГлебЧетвертак-щ7з, завернул. Пока тоже не вижу оправдания, только если чтоб выпутаться из дерьмокода в легаси. Так сказать, выход из Матрицы. Тоже наверное библиотечное применение какое-то...
@antonnikonov9721
@antonnikonov9721 Жыл бұрын
я так и не понял зачем мне символы, зря только потерял время
@NeoJohnSmit
@NeoJohnSmit 3 жыл бұрын
Женя привет, как дела ?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Привет, ок)
@FJFray
@FJFray 2 жыл бұрын
Зря говорите, что символы придуманы и используются только для создания уникальных ключей. Таким образом вы исключаете не менее важную тему системных символов, например Symbol.iterator, используемый для создания кастомных итераторов.
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
На момент записи других идей использования символов не пришло в голову
@АртакМинасян-н7ц
@АртакМинасян-н7ц 2 жыл бұрын
3:36 что он сказал
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
«В качестве аргумента мы так же можем отправлять имя для символа»
@saydrake9363
@saydrake9363 3 жыл бұрын
Почему на 6:28 обращаемся person[Symbol.for('password')] , через квадратные скобки к символу , а не через точку ?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
А вы пробовали обратиться через точку, получилось?
@saydrake9363
@saydrake9363 3 жыл бұрын
@@YauhenKavalchuk "Если мы хотим использовать символ при литеральном объявлении объекта {...}, его необходимо заключить в квадратные скобки." Поэтому мы не можем обратиться к символу ч/з точку
@grigoryVolchok
@grigoryVolchok 9 ай бұрын
Он должет "вычислиться", или вернуть вычисленное значение, поэтому через квадратные скобки. Через точку только к свойствам, которые созданы из литералов строк.
@Fs-xj2gu
@Fs-xj2gu 5 жыл бұрын
Такое чувство как будто с книжки читаешь Своими словами не мог объяснить?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Нет, начну объяснять своими словами, напишут что лью воду. А вообще, вы отчасти правы - я зачитываю сценарий, который до этого написал
@Fs-xj2gu
@Fs-xj2gu 5 жыл бұрын
@@YauhenKavalchuk ну зачем тезисна
@serhioramires3166
@serhioramires3166 7 ай бұрын
Да он сам не понимает, зазубрил по learning javascript и высоал на ютуб. Mission complied.
@anubiss6511
@anubiss6511 3 жыл бұрын
Ну и в чем его смысл?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Если вы обычный разработчик, мало вероятно что хоть раз воспользуетесь таким типом данных
@davtian1674
@davtian1674 6 жыл бұрын
let person = { name: "Jack", age: 20, [Symbol("password")]: "Jack20", } console.log(person) // Object {name: "Jack", age: 20, Symbol(password): "Jack20"}
@VassiliySmith
@VassiliySmith 2 жыл бұрын
шляпа полнейшая, кто вообще юзает это на практике сложно представить
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
🤷‍♂️
ES6 #13 Промисы (Promise)
8:59
webDev
Рет қаралды 24 М.
ES6 #16 Генераторы (Generators)
11:41
webDev
Рет қаралды 12 М.
КОТЁНОК МНОГО ПОЁТ #cat
00:21
Лайки Like
Рет қаралды 2,8 МЛН
Bungee Jumping With Rope In Beautiful Place:Asmr Bungee Jumping
00:14
Bungee Jumping Park Official
Рет қаралды 17 МЛН
New Colour Match Puzzle Challenge - Incredibox Sprunki
00:23
Music Playground
Рет қаралды 44 МЛН
Что такое рекурсия. Фундаментальный JavaScript
20:32
Михаил Непомнящий
Рет қаралды 25 М.
The Complete Guide to JS Symbols ES6
12:18
Colt Steele
Рет қаралды 55 М.
ES6 #15 Итераторы (Iterators)
7:21
webDev
Рет қаралды 15 М.
ES6 #9 Наследование (Inheritance)
9:23
webDev
Рет қаралды 7 М.
ES6 #8 Классы (Class)
11:01
webDev
Рет қаралды 16 М.
ES6 #17 Set & Map
9:28
webDev
Рет қаралды 11 М.
КОТЁНОК МНОГО ПОЁТ #cat
00:21
Лайки Like
Рет қаралды 2,8 МЛН