From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- files/uk/glossary/symbol/index.html | 109 ------------------------------------ 1 file changed, 109 deletions(-) delete mode 100644 files/uk/glossary/symbol/index.html (limited to 'files/uk/glossary/symbol') diff --git a/files/uk/glossary/symbol/index.html b/files/uk/glossary/symbol/index.html deleted file mode 100644 index da8ea9c366..0000000000 --- a/files/uk/glossary/symbol/index.html +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Символ -slug: Glossary/Symbol -tags: - - ECMAScript2015 - - JavaScript - - Sharing - - Символ - - Словник - - Тип даних -translation_of: Glossary/Symbol -original_slug: Glossary/Символ ---- -

У {{Glossary("JavaScript")}}, символ (Symbol) є {{Glossary("Primitive", "простим типом даних")}}.

- -

Значення типу символ також називають "Символьним значенням". У середовищі виконання JavaScript символьне значення створюється викликом функції {{jsxref("Symbol")}}, яка динамічно створює анонімне, унікальне значення. Символ можна використовувати як властивість об'єкта.

- -

Символ може мати необов'язковий опис, але тільки для відлагодження.

- -

Символьне значення є унікальним ідентифікатором. Наприклад,

- -
// Ось два символи з однаковим описом,
-let Sym1 = Symbol("Sym");
-let Sym2 = Symbol("Sym");
-
-console.log(Sym1 == Sym2); // повертає "false"
-// Символи гарантовано є унікальними.
-// Навіть якщо ми створимо багато символів з тим самим описом,
-// вони будуть різними значеннями.
- -
-

Заувага: Якщо ви знайомі з Ruby чи іншою мовою, що має свій аналог “символів” – будь ласка, не плутайте. Символи JavaScript інші.

-
- -

Символьний тип - це новий функціонал у ECMAScript 2015, і він не має еквіваленту у ECMAScript 5.

- -

У деяких мовах програмування символьний тип даних також називається "атом".

- -

Символи не мають автоматичного перетворення у рядки

- -

Більшість значень у JavaScript підтримують неявне перетворення у рядки. Наприклад, ми можемо викликати alert майже з будь-яким значенням, і це спрацює. Символи особливі. Вони не перетворюються автоматично.

- -

Наприклад,

- -
let Sym = Symbol("Sym");
-alert(Sym); // TypeError: Cannot convert a Symbol value to a string
- -

Це “мовний захист” від плутанини, тому що рядки та символи є фундаментально різними, і не повинні випадково перетворюватись один на одного.

- -

Якщо нам дуже потрібно вивести символ, треба викликати на ньому метод .toString().

- -
let Sym = Symbol("Sym");
-
-alert(Sym.toString()); // Symbol(Sym), тепер це працює
- -

Або ми можемо скористатись властивістю символу symbol.description, щоб дістати його опис, наприклад,

- -
let _Sym = Symbol("Sym");
-
-alert(_Sym.description); // Sym
- -

Добревідомі символи

- -

Клас {{jsxref("Symbol")}} має константи для так званих добревідомих символів (well-known symbols). Ці символи дозволяють налаштовувати взаємодію JS з об'єктом, використовуючи їх в якості ключів.

- -

Прикладами добревідомих символів є: {{jsxref("Symbol.iterator")}} для подібних до масивів об'єктів, або {{jsxref("Symbol.search")}} для рядкових об'єктів.

- -

Вони наведені у таблиці специфікації Добревідомі символи:

- - - -

Глобальний реєстр символів

- -

Методами, що мають доступ до глобального реєстру символів, є {{jsxref("Symbol.for()")}} і {{jsxref("Symbol.keyFor()")}}; це посередники між глобальною таблицею (або "реєстром") символів та середовищем виконання. Реєстр символів переважно збудований інфраструктурою компілятора Javascript, а вміст реєстру символів не доступний для інфраструктури виконання Javascript, окрім як за допомогою цих методів.

- -

Метод Symbol.for(tokenString) повертає символьне значенняз реєстру, а Symbol.keyFor(symbolValue) повертає рядковий токен з реєстру; ці функції зворотні одна одній, тому наступне є істиною:

- -
Symbol.keyFor(Symbol.for("tokenString")) === "tokenString" // true
- -

Дізнайтеся більше

- -

Загальні знання

- - - - -- cgit v1.2.3-54-g00ecf