1. Змінні, типи даних та їх перетворення, оператори

Get Started. It's Free
or sign up with your email address
1. Змінні, типи даних та їх перетворення, оператори by Mind Map: 1. Змінні, типи даних та їх перетворення, оператори

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

1.1. Змінні

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

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

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

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

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

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

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

1.1.3.4.1. let

1.1.3.4.2. class

1.1.3.4.3. return

1.1.3.4.4. function

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

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

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

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

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

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

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

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

1.1.5. гнучка 'let'

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

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

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

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

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

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

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

1.1.8. Q&A

1.2. Типи даних

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

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

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

1.2.1.2.1. Infinity

1.2.1.2.2. -Infinity

1.2.1.2.3. NaN

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.2.8.1. Або typeof(x)

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

1.2.9. Q&A

1.3. Оператори

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

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

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

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

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

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

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

1.3.3. Логічні

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

1.3.3.1.1. оператор && та присвоєння

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

1.3.3.2.1. оператор || та присвоєння

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

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

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

1.3.4.2. кома ','

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

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

1.3.4.4.1. Інкремент/декремент можна використовувати двома способами - перед змінною та після

1.3.5. Побітові

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

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

1.3.8. Q&A

1.4. Перетворення примітивних типів

1.4.1. Явні перетворення

1.4.1.1. перетворення в number

1.4.1.1.1. функція Number()

1.4.1.1.2. функція parseInt()

1.4.1.1.3. оператор +

1.4.1.1.4. тут в деталях про відмінності: https://thisthat.dev/number-constructor-vs-parse-int/

1.4.1.2. перетворення в string

1.4.1.2.1. метод .toString()

1.4.1.2.2. функція String()

1.4.1.2.3. додавання порожньої строки

1.4.1.3. перетворення в boolean

1.4.1.3.1. оператор !!

1.4.1.3.2. функція Boolean()

1.4.1.3.3. В false перетворюються: false undefined null NaN 0 ""

1.4.1.3.4. все інше - в true

1.4.1.4. перетворення в bigint

1.4.1.4.1. функція BigInt()

1.4.2. Перетворення в операціях

1.4.2.1. в математичних операціях

1.4.2.1.1. true стає 1

1.4.2.1.2. null стає 0

1.4.2.1.3. undefined стає 'NaN'

1.4.2.1.4. string...

1.4.2.1.5. bigint...

1.4.2.2. в логічних операціях

1.4.2.2.1. 0, null, undefined, NaN, "" - перетворюються в `false`

1.4.2.2.2. Всі інші значення - в `true`

1.4.2.3. давайте перевіримо

1.4.3. Q&A

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

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

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

1.5.3. 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