2. Основні поняття

Jetzt loslegen. Gratis!
oder registrieren mit Ihrer E-Mail-Adresse
2. Основні поняття von Mind Map: 2. Основні поняття

1. Частина, де ми говоримо про JS

1.1. Структура коду ('скрипта')

1.1.1. Скрипт виконується зверху вниз

1.1.1.1. Зазвичай спершу йде оголошення змінних, а потім логіка

1.1.2. 'use strict'

1.1.2.1. Додавайте цю директиву на початку свого скрипту

1.1.3. ';' та перенесенння на новий рядок

1.1.3.1. ставте ';'

1.1.3.2. переносьте код на наступний рядок

1.1.4. Коментарі

1.1.4.1. є однострокові коментарі // коментар

1.1.4.2. є багатострокові коментарі /* коментар 1 коментар 2 коментар 3 */

1.1.4.3. Додавати коментарі - це корисно

1.1.5. Q&A

1.2. Змінні

1.2.1. Змінна - це коробка з тим що в неї поклали

1.2.2. Оголошення та присвоєння

1.2.3. гнучка 'let'

1.2.4. стабільна 'const'

1.2.5. Іменування змінних має декілька правил:

1.2.5.1. Ім'я змінної може містити тільки букви, цифри та символи '$' і '_'.

1.2.5.2. Перший символ не має бути цифрою

1.2.5.3. Регістр має значення. 'let user' та 'let User` - це різні змінні

1.2.5.4. Існують зарезервовані слова які не можна використовувати як назви змінних:

1.2.5.4.1. let

1.2.5.4.2. class

1.2.5.4.3. return

1.2.5.4.4. function

1.2.6. Серед розробників є прийняті практики іменування

1.2.6.1. Викристовуйте зрозумілі імена

1.2.6.2. Уникайте абревіатур та коротких імен в один символ

1.2.6.3. 'Самодокументований код' - чудові імена максимально описові та лаконічні

1.2.6.3.1. Такий код економить час, нерви та ресурси команди

1.2.6.4. Краще створити нову змінну ніж перевикорситати вже існуючу

1.2.6.5. Дотримуйтесь домовленостей щодо іменування в команді

1.2.6.5.1. BTW, ось найрозповсюдженіші регісти в JS:

1.2.7. Q&A

1.3. Типи даних

1.3.1. Для чисел є 'number'

1.3.1.1. Приклад: let studentsCount = 11;

1.3.1.2. Є спеціальні числові значення:

1.3.1.2.1. Infinity

1.3.1.2.2. -Infinity

1.3.1.2.3. NaN

1.3.1.3. Є ліміти: від -9007199254740991 до 9007199254740991

1.3.1.4. Математичні операції не валять виконання скрипта

1.3.2. Для довільних цілих чисел є bigint

1.3.2.1. Не має лімітів

1.3.2.2. Приклад: const maxAmmount = 2444666668888888123456789012345678901234567890n;

1.3.3. Для тексту є 'string'

1.3.3.1. Приклад: const helloMessage = 'Hello there!';

1.3.3.2. Можна використовувати '', "", ``

1.3.3.2.1. Приклад: const user = 'John'; const helloMessage = `Hello ${user}`;

1.3.4. Для булевих значень є 'boolean'

1.3.4.1. Приклад: const toBe = true;

1.3.5. Для комплексних значень є 'object'

1.3.5.1. Приклад: let lastMessage = { fromUserId: 4521485, toUser: 4756418, timeStamp: 151614444315, text: 'Where are you?' };

1.3.5.2. Має підвиди:

1.3.5.2.1. Для впорядкованих колекцій є 'Array'

1.3.5.2.2. Для дат є 'Date'

1.3.5.2.3. Для функцій є 'function'

1.3.6. Для створення унікальних ідентифікаторів є `symbol`

1.3.7. Для специфічних значень є `null` та `undefined`

1.3.7.1. `null` використовується коли значення порожнє: let tasks = null;

1.3.7.2. `undefined` використовується коли значення немає: let tasks; console.log(tasks) // undefined

1.3.8. Для перевірки типу змінної є метод 'typeof x' Він повертає назву типу

1.3.8.1. Або typeof(x)

1.3.8.1.1. Для null буде повертати 'object', бо це одна з дитячих хвороб

1.3.9. Q&A

1.4. Оператори

1.4.1. Математичні

1.4.1.1. додавання '+' віднімання '-' множення '*' ділення '/' залишок від цілочисленного ділення '%' ступінь '**' інкремент '++' декремент '--'

1.4.2. Порівняння

1.4.2.1. Більше/менше '<', '>'

1.4.2.2. Більше/менше чи дорівнює >=,<=

1.4.2.3. Дорівнює/не дорівнює '==', '!='

1.4.2.4. Суворе дорівнює/не дорівнює '===', '!=='

1.4.3. Логічні

1.4.3.1. Логічне 'І' '&&'

1.4.3.2. Логічне 'АБО' '||'

1.4.3.3. Логічне 'НЕ' '!'

1.4.4. Специфічні

1.4.4.1. приведення до буллевого значення '!!'

1.4.4.2. кома ','

1.4.4.3. присвоєння '='

1.4.4.4. інкремент '++' декремент '--'

1.4.5. Побітові

1.4.6. Пріоритет виконання

1.4.7. Q&A

1.5. Цикли

1.5.1. while

1.5.2. do...while

1.5.3. for...

1.5.4. Директиви `break` i `continue`

1.5.4.1. мітки для break/continue

1.5.5. Q&A

1.6. Умовні конструкції

1.6.1. if...

1.6.1.1. ідеально для виконання коду

1.6.2. Тернарний оператор '?'

1.6.2.1. ідеально для присвоєння значення

1.6.3. switch

1.6.3.1. ідеально для перебору по значенню

1.6.4. Q&A

1.7. Специфічні моменти

1.7.1. Є нюанс щодо 'копіювання' значень змінних

1.7.2. Застаріла 'var' і її проблеми

1.7.2.1. не має блочної області видимості

1.7.2.2. допускає повторне оголошення

1.7.2.3. допускає переприсвоєння

1.7.2.4. оголошення обробляються на початку скрипта

1.7.2.4.1. але не присвоєння

1.7.3. Нульовий оператор об’єднання '??'

1.7.4. специфічні комбінації операторів та типів

1.7.5. Q&A

2. Епілог

2.1. Екстра матеріали

2.1.1. Про відмінності між типами змінних: https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/

2.1.2. Про нульвий оператор злиття: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator

2.1.3. Таблиця пріоритетів операторів: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#table

2.1.4. Побітові оператори: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#bitwise_operators

2.2. Тизер-трейлер наступного вебінару

2.2.1. знову Q&A