aboutsummaryrefslogtreecommitdiff
path: root/files/uk/glossary
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-14 12:18:12 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-14 12:18:12 -0500
commit869dd2069c695ee7040cd3261713212155819f42 (patch)
tree320a95de75a89686a9df006b90d923aa7fa0d551 /files/uk/glossary
parenta5fcfafb665e96cae5d04dfba927db8dcdfd7f14 (diff)
downloadtranslated-content-869dd2069c695ee7040cd3261713212155819f42.tar.gz
translated-content-869dd2069c695ee7040cd3261713212155819f42.tar.bz2
translated-content-869dd2069c695ee7040cd3261713212155819f42.zip
final dump 2020-12-14
Diffstat (limited to 'files/uk/glossary')
-rw-r--r--files/uk/glossary/символ/index.html36
1 files changed, 22 insertions, 14 deletions
diff --git a/files/uk/glossary/символ/index.html b/files/uk/glossary/символ/index.html
index fd9ceb772a..5b0a3767a1 100644
--- a/files/uk/glossary/символ/index.html
+++ b/files/uk/glossary/символ/index.html
@@ -18,7 +18,7 @@ translation_of: Glossary/Symbol
<p><strong>Символьне значення</strong> є унікальним ідентифікатором. Наприклад,</p>
-<pre class="brush: js">// Ось два символи з однаковим описом,
+<pre class="brush: js notranslate">// Ось два символи з однаковим описом,
let Sym1 = Symbol("Sym");
let Sym2 = Symbol("Sym");
@@ -27,37 +27,42 @@ console.log(Sym1 == Sym2); // повертає "false"
// Навіть якщо ми створимо багато символів з тим самим описом,
// вони будуть різними значеннями.</pre>
-<p>Заувага: Якщо ви знайомі з Ruby чи іншою мовою, що має свій аналог “символів” – будь ласка, не плутайте. Символи JavaScript інші.</p>
+<div class="blockIndicator note">
+<p><strong>Заувага</strong>: Якщо ви знайомі з Ruby чи іншою мовою, що має свій аналог “символів” – будь ласка, не плутайте. Символи JavaScript інші.</p>
+</div>
-<p>Символьний тип - це новий функціонал у ECMAScript 2015, і він не має еквіваленту у ECMAScript 5. У деяких мовах програмування символьний тип даних також називається "атом".</p>
+<p>Символьний тип - це новий функціонал у ECMAScript 2015, і він не має еквіваленту у ECMAScript 5.</p>
-<h3 id="Символи_не_мають_автоматичного_перетворення_у_рядки">Символи не мають автоматичного перетворення у "рядки"</h3>
+<p>У деяких мовах програмування символьний тип даних також називається "атом".</p>
+
+<h3 id="Символи_не_мають_автоматичного_перетворення_у_рядки">Символи не мають автоматичного перетворення у рядки</h3>
<p>Більшість значень у JavaScript підтримують неявне перетворення у рядки. Наприклад, ми можемо викликати <code>alert</code> майже з будь-яким значенням, і це спрацює. Символи особливі. Вони не перетворюються автоматично.</p>
<p>Наприклад,</p>
-<pre class="brush: js">let Sym = Symbol("Sym");
-
+<pre class="brush: js notranslate">let Sym = Symbol("Sym");
alert(Sym); // TypeError: Cannot convert a Symbol value to a string</pre>
<p>Це “мовний захист” від плутанини, тому що рядки та символи є фундаментально різними, і не повинні випадково перетворюватись один на одного.</p>
-<p>Якщо нам дуже потрібно вивести символ, треба викликати на ньому метод <code>.toString()</code>, наприклад,</p>
+<p>Якщо нам дуже потрібно вивести символ, треба викликати на ньому метод <code>.toString()</code>.</p>
-<pre class="brush: js">let Sym = Symbol("Sym");
+<pre class="brush: js notranslate">let Sym = Symbol("Sym");
alert(Sym.toString()); // Symbol(Sym), тепер це працює</pre>
-<p>Або ми можемо скористатись властивістю символу <code>symbol.description</code>, щоб дістати його опис, наприклад,</p>
+<p>Або ми можемо скористатись властивістю символу <code><em>symbol</em>.description</code>, щоб дістати його опис, наприклад,</p>
-<pre class="brush: js">let _Sym = Symbol("Sym");
+<pre class="brush: js notranslate">let _Sym = Symbol("Sym");
alert(_Sym.description); // Sym</pre>
<h3 id="Добревідомі_символи">Добревідомі символи</h3>
-<p>Клас {{jsxref("Symbol")}} має константи для так званих добревідомих символів. Ці символи дозволяють налаштовувати взаємодію JS з об'єктом, використовуючи їх в якості ключів. Прикладами добревідомих символів є: {{jsxref("Symbol.iterator")}} для подібних до масивів об'єктів, або {{jsxref("Symbol.search")}} для рядкових об'єктів.</p>
+<p>Клас {{jsxref("Symbol")}} має константи для так званих добревідомих символів (<em>well-known symbols</em>). Ці символи дозволяють налаштовувати взаємодію JS з об'єктом, використовуючи їх в якості ключів.</p>
+
+<p>Прикладами добревідомих символів є: {{jsxref("Symbol.iterator")}} для подібних до масивів об'єктів, або {{jsxref("Symbol.search")}} для рядкових об'єктів.</p>
<p>Вони наведені у таблиці специфікації <a href="https://tc39.github.io/ecma262/#sec-well-known-symbols">Добревідомі символи</a>:</p>
@@ -71,9 +76,11 @@ alert(_Sym.description); // Sym</pre>
<h3 id="Глобальний_реєстр_символів">Глобальний реєстр символів</h3>
-<p>Методами, що мають доступ до глобального реєстру символів, є {{jsxref("Symbol.for()")}} і {{jsxref("Symbol.keyFor()")}}; це посередники між глобальною таблицею (або "реєстром") символів та середовищем виконання. Реєстр символів переважно збудований інфраструктурою компілятора Javascript, а вміст реєстру символів не доступний для інфраструктури виконання Javascript, окрім як за допомогою цих методів. Метод <em><code>Symbol.for(tokenString)</code></em> повертає символьне значенняз реєстру, а <em><code>Symbol.keyFor(symbolValue)</code></em> повертає рядковий токен з реєстру; ці функції зворотні одна одній, тому наступне є істиною:</p>
+<p>Методами, що мають доступ до глобального реєстру символів, є {{jsxref("Symbol.for()")}} і {{jsxref("Symbol.keyFor()")}}; це посередники між глобальною таблицею (або "реєстром") символів та середовищем виконання. Реєстр символів переважно збудований інфраструктурою компілятора Javascript, а вміст реєстру символів не доступний для інфраструктури виконання Javascript, окрім як за допомогою цих методів.</p>
+
+<p>Метод <em><code>Symbol.for(tokenString)</code></em> повертає символьне значенняз реєстру, а <em><code>Symbol.keyFor(symbolValue)</code></em> повертає рядковий токен з реєстру; ці функції зворотні одна одній, тому наступне є істиною:</p>
-<pre class="brush: js">Symbol.keyFor(Symbol.for("tokenString")) === "tokenString"; // true</pre>
+<pre class="brush: js notranslate">Symbol.keyFor(Symbol.for("tokenString")) === "tokenString" // true</pre>
<h2 id="Дізнайтеся_більше">Дізнайтеся більше</h2>
@@ -83,7 +90,7 @@ alert(_Sym.description); // Sym</pre>
<li><a href="https://en.wikipedia.org/wiki/Symbol_(programming)">Symbol (programming)</a> на Вікіпедії</li>
<li><a href="/uk/docs/Web/JavaScript/Data_structures">Типи та структури даних у JavaScript</a></li>
<li><a href="http://2ality.com/2014/12/es6-symbols.html">Символи у ECMAScript 6</a></li>
- <li>{{jsxref("Symbol")}} у довідці MDN</li>
+ <li>{{jsxref("Symbol")}} у довідці MDN з JS</li>
<li>{{jsxref("Object.getOwnPropertySymbols()")}}</li>
</ul>
@@ -96,5 +103,6 @@ alert(_Sym.description); // Sym</pre>
<li>{{Glossary("Primitive","Простий тип даних")}}</li>
</ul>
</li>
+ <li>{{jsxref("Symbol")}}</li>
</ul>
</section>