Symbol - javascript, mdn
Символ (анг. Symbol) - це унікальний і незмінний тип даних, який може бути використаний як ідентифікатор для властивостей об'єктів. Символьний об'єкт (анг. Symbol object) - це об'єкт-обгортка (англ. Wrapper) для примітивного символьного типу.
опис Необов'язковий Необов'язковий, рядок. Опис символу, яке може бути використано під час налагодження, але не для доступу до самого символу.
Щоб створити новий символьний примітив, досить написати Symbol (). вказавши за бажанням рядок в якості опису цього символу:
Код вище створює три нових символу. Зауважте, що Symbol ( "foo") не виконує приведення (англ. Coercion) рядки "foo" до символу. Цей вислів створює кожен раз новий символ:
Код нижче з оператором new кине виняток TypeError:
Це утримує розробників від створення явного об'єкта-обгортки Symbol замість нового символьного значення. Створення явних об'єктів-обгорток для примітивних типів є (наприклад, new Boolean. New String. New Number).
Якщо вам дійсно необхідно обгорнути символ в об'єкт, ви можете використовувати функцію Object ():
Спільні символи в глобальному символьному реєстрі
Наведений вище синтаксис, який використовує функцію Symbol (), не створить глобальний символ, який був би доступний в будь-якому місці вашого коду. Для створення символів, доступних у всіх файлах і в оточенні (глобальної області), використовуйте методи Symbol.for () і Symbol.keyFor (). щоб задати або отримати символ з глобального символьного реєстру.
Пошук символьних властивостей у об'єктів
Метод Object.getOwnPropertySymbols () повертає масив символів і дозволяє отримати символьні властивості конкретного об'єкта. Слід зауважити, що при ініціалізації об'єкти не отримують символьних властивостей, так що цей масив буде порожній, поки ви не поставите йому якесь символьне властивість.
Symbol.length Містить довжину, завжди рівну 0 (нулю). Symbol.prototype Містить прототип конструктора Symbol.
відомі символи
ітераційні символи
Symbol.iterator Метод, який повертає ітератор за замовчуванням для об'єкта. Використовується конструкцією for. of.
Символи регулярних виразів
Symbol.match Метод для зіставлення об'єкта з рядком, також використовується для визначення можливості об'єкта виступати в якості регулярного виразу. Використовується функцією String.prototype.match (). Symbol.replace Метод, який замінює збіглися підрядка в рядку. Використовується функцією String.prototype.replace (). Symbol.search Метод, який повертає індекс входження підрядка, відповідної регулярному виразу. Використовується функцією String.prototype.search (). Symbol.split Метод, який розбиває рядок на частини в місцях, відповідних регулярному виразу. Використовується функцією String.prototype.split ().
інші символи
Symbol.hasInstance Метод, який визначає, чи розпізнає конструктор деякий об'єкт як свій екземпляр. Використовується оператором instanceof. Symbol.isConcatSpreadable Булево значення, що показує, чи повинен об'єкт бути зведений до плоского поданням (англ. Flatten) у вигляді масиву його елементів функцією Array.prototype.concat (). Symbol.unscopables Масив строкових імен властивостей. Дозволяє приховати властивості від інструкції with (перш за все для забезпечення сумісності). Symbol.species Метод, який визначає конструктор для породжених об'єктів. Symbol.toPrimitive Метод, що перетворює об'єкт в примітив (примітивне значення). Symbol.toStringTag Строкове значення, яке використовується в якості опису об'єкта за замовчуванням. Використовується функцією Object.prototype.toString ()
Symbol.for (key) Шукає існуючі символи по заданому ключу і повертає його, якщо він знайдений. В іншому випадку створюється новий символ для даного ключа в глобальному реєстрі символів. Symbol.keyFor (sym) Отримує по разделямому символу його ключ з глобального реєстру символів.
прототип Symbol
Symbol.prototype.constructor Returns the function that created an instance's prototype. This is the Symbol function by default.
Дякуємо! Будь ласка, перевірте свою папку "Вхідні" для підтвердження підписки.
Якщо ви раніше не підтверджували підписку на розсилку новин Mozilla, то вам, можливо, доведеться зробити це. Будь ласка, перевірте папку Вхідні або Спам в своїй поштовій скриньці, щоб подивитися, чи не настав від нас лист.
Приховати підписку на розсилку новин
Чому MDN виглядає інакше?
MDN змінюється, фокусуючись тільки на документуванні веб-технологій. Все той же відмінний контент залишиться тут; ми міняємо тільки візуальні елементи і навігацію, щоб допомогти вам швидше знаходити документацію по веб-технологіям.
Але не хвилюйтеся, MDN і Mozilla як і раніше разом. За фактом, ми оновлюємо тільки оформлення MDN, щоб відповідати новому лого і квітам Mozilla.
Прочитайте більше про редизайн в пості на нашому блозі. Дякуємо за використання MDN!
Приховати повідомлення про редизайн