From bed0b32f0b50a9fe9d57a5f23a811e540fc52273 Mon Sep 17 00:00:00 2001 From: Stepan Suvorov Date: Thu, 9 May 2019 14:33:35 +0200 Subject: [PATCH 1/4] sync with origin --- .../1-string-new-property/solution.md | 17 ++++++----------- .../01-primitives-methods/article.md | 12 ++++++------ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md index 732dfefa5..fde35b31f 100644 --- a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md +++ b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md @@ -9,23 +9,18 @@ str.test = 5; // (*) alert(str.test); ``` -Ви можете отримати два результати: +В залежності від втановлений у вас `use strict` чи ні, результати будуть наступними: 1. `undefined` -2. помилку. +2. помилку. (строгий режим) Чому? Давайте повторимо те, що відбувається в рядку `(*)`: 1. Коли ми намагаємося отримати доступ до `str`, створюється "об'єкт обгортка". -2. Операція з властивістю здійснюється в ній. Отже, об'єкт отримує властивість `test`. -3. Операція закінчується, і "об'єкт обгортка" зникає. - -Отже, на останньому рядку `str` не має властивості. Для кожної операції створюється новий об'єкт обгортка. - -Деякі браузери можуть вирішити додатково обмежити програміста і взагалі заборонити присвоювати властивості примітивам. Тому на практиці ми можемо бачити помилки в рядку `(*)`. Але це трохи відрізняється від специфікації. +2. В строгому режимі, спроба запису викличе помилку. +3. В іншому випадку операція з властивістю здійсниться, об'єкт отримує `test` властивість, але після цього "об'єкт обгортка" зникає. +Отже, якщо код виконується не в строгому режимі, на останньому рядку `str` не має властивості `test`. **Цей приклад чітко показує, що примітиви не є об'єктами.** -Вони просто не можуть зберігати дані. - -Всі операції з властивостями/методами виконуються за допомогою тимчасових об'єктів. +Вони не можуть зберігати додаткові данні. diff --git a/1-js/05-data-types/01-primitives-methods/article.md b/1-js/05-data-types/01-primitives-methods/article.md index 32a427146..20cc5259a 100644 --- a/1-js/05-data-types/01-primitives-methods/article.md +++ b/1-js/05-data-types/01-primitives-methods/article.md @@ -14,7 +14,7 @@ JavaScript дозволяє працювати з примітивами (ряд Об'єкт - можливо зберігати декілька значень як властивості. -- може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти; функції - це теж об'єкти. +- може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти: функції - це теж об'єкти. Одна з цікавих речей щодо об'єктів полягає в тому, що ми можемо зберігати функцію як одну з його властивостей. @@ -48,7 +48,7 @@ john.sayHi(); // Привіт друже! 1. Примітиви залишаються примітивами. Лише значення, як хотіли. 2. Мова дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів. -3. Колі це трапляється, створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. +3. Для цього створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. Для кожного примітиву створюється своя "обгортка": `String`, `Number`, `Boolean` та `Symbol`. Отже, вони містять різні набори методів. @@ -91,18 +91,18 @@ alert( n.toFixed(2) ); // 1.23 Наприклад: ```js run -alert( typeof 1 ); // "number" +alert( typeof 0 ); // "number" -alert( typeof new Number(1) ); // "object"! +alert( typeof new Number(0) ); // "object"! ``` -та завдяки тому що `zero` об'єкт, ми побачимо алерт: +Об'єкти завжди повертають `true` в `if`, отже ми побачимо алерт: ```js run let zero = new Number(0); if (zero) { // zero є true, тому що це об'єкт - alert( "zero є true?!?" ); + alert( "zero є true!?!" ); } ``` From 3659b18201462bb518b5dbe084cd015a9b0314b0 Mon Sep 17 00:00:00 2001 From: Stepan Suvorov Date: Thu, 9 May 2019 14:38:00 +0200 Subject: [PATCH 2/4] cleanup merge conflicts --- 1-js/05-data-types/01-primitives-methods/article.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/1-js/05-data-types/01-primitives-methods/article.md b/1-js/05-data-types/01-primitives-methods/article.md index bf5819ced..8240d005a 100644 --- a/1-js/05-data-types/01-primitives-methods/article.md +++ b/1-js/05-data-types/01-primitives-methods/article.md @@ -13,13 +13,8 @@ JavaScript дозволяє працювати з примітивами (ряд Об'єкт -<<<<<<< HEAD - можливо зберігати декілька значень як властивості. - може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти: функції - це теж об'єкти. -======= -- можна зберігати декілька значень як властивості. -- може бути створений за допомогою `{}`, наприклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти; функції - це теж об'єкти. ->>>>>>> 3403c989a4dd0a328ab32cc002e15f61bd98e99a Одна з цікавих речей щодо об'єктів полягає в тому, що ми можемо зберігати функцію як одну з його властивостей. @@ -52,13 +47,8 @@ john.sayHi(); // Привіт друже! Рішення виглядає трошки дивно, але так і є: 1. Примітиви залишаються примітивами. Лише значення, як хотіли. -<<<<<<< HEAD -2. Мова дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів. -3. Для цього створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. -======= 2. JavaScript дозволяє отримати доступ до методів та властивостей рядків, чисел, булеанів та символів. -3. Коли це трапляється, створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. ->>>>>>> 3403c989a4dd0a328ab32cc002e15f61bd98e99a +3. Для цього створюється спеціальний "об'єкт обгортка" з додатковою функціональністю, та потім він знищується. Для кожного примітиву створюється своя "обгортка": `String`, `Number`, `Boolean` та `Symbol`. Отже, вони містять різні набори методів. From 96d6bd3ae302b5b7fc93adf0bfba71b3a4b28be8 Mon Sep 17 00:00:00 2001 From: Taras Date: Thu, 9 May 2019 16:34:33 +0300 Subject: [PATCH 3/4] add 'use strict' condition to solution --- .../1-string-new-property/solution.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md index fde35b31f..ad4eac6a9 100644 --- a/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md +++ b/1-js/05-data-types/01-primitives-methods/1-string-new-property/solution.md @@ -9,17 +9,17 @@ str.test = 5; // (*) alert(str.test); ``` -В залежності від втановлений у вас `use strict` чи ні, результати будуть наступними: -1. `undefined` -2. помилку. (строгий режим) +В залежності від того, втановлений у вас `use strict` чи ні, результати будуть наступними: +1. `undefined` (без строгого режиму) +2. Помилка (строгий режим) -Чому? Давайте повторимо те, що відбувається в рядку `(*)`: +Чому? Давайте повторимо те, що відбувається в рядку, який позначено `(*)`: 1. Коли ми намагаємося отримати доступ до `str`, створюється "об'єкт обгортка". 2. В строгому режимі, спроба запису викличе помилку. -3. В іншому випадку операція з властивістю здійсниться, об'єкт отримує `test` властивість, але після цього "об'єкт обгортка" зникає. +3. В іншому випадку операція здійсниться і об'єкт отримає властивість `test`, але після цього "об'єкт обгортка" зникне. -Отже, якщо код виконується не в строгому режимі, на останньому рядку `str` не має властивості `test`. +Отже, якщо код виконується не в строгому режимі, на останньому рядку `str` не матиме властивості `test`. **Цей приклад чітко показує, що примітиви не є об'єктами.** From 8e01b82143ca3fd5ff65df23c1d2b6f6bca5699c Mon Sep 17 00:00:00 2001 From: Taras Date: Thu, 9 May 2019 16:38:46 +0300 Subject: [PATCH 4/4] corrections from English version --- 1-js/05-data-types/01-primitives-methods/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-js/05-data-types/01-primitives-methods/article.md b/1-js/05-data-types/01-primitives-methods/article.md index 8240d005a..cf3ae1d3d 100644 --- a/1-js/05-data-types/01-primitives-methods/article.md +++ b/1-js/05-data-types/01-primitives-methods/article.md @@ -13,8 +13,8 @@ JavaScript дозволяє працювати з примітивами (ряд Об'єкт -- можливо зберігати декілька значень як властивості. -- може бути створений за допомогою `{}`, на приклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти: функції - це теж об'єкти. +- можна зберігати декілька значень як властивості. +- може бути створений за допомогою `{}`, наприклад: `{name: "John", age: 30}`. В JavaScript існують й інші об'єкти: функції - це теж об'єкти. Одна з цікавих речей щодо об'єктів полягає в тому, що ми можемо зберігати функцію як одну з його властивостей. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy