diff --git a/1-js/04-object-basics/01-object/3-is-empty/task.md b/1-js/04-object-basics/01-object/3-is-empty/task.md index 015b7249f..6f319a800 100644 --- a/1-js/04-object-basics/01-object/3-is-empty/task.md +++ b/1-js/04-object-basics/01-object/3-is-empty/task.md @@ -4,7 +4,7 @@ importance: 5 # Перевірка на порожнечу -Напишіть функцію `isEmpty(obj)`, яка повертає `true`, якщо об’єкт не має властивості, інакше `false`. +Напишіть функцію `isEmpty(obj)`, яка повертає `true`, якщо об’єкт не має жодної властивості, інакше `false`. Має так працювати: diff --git a/1-js/04-object-basics/01-object/article.md b/1-js/04-object-basics/01-object/article.md index 3805ad948..98c7c3852 100644 --- a/1-js/04-object-basics/01-object/article.md +++ b/1-js/04-object-basics/01-object/article.md @@ -90,7 +90,7 @@ let user = { age: 30*!*,*/!* } ``` -Це називається "кінцевою" або "висячою" комою. Полегшує додавання/видалення/переміщення по властивостях, оскільки всі рядки стають однаковими. +Це називається "кінцевою" або "висячою" комою. Вона полегшує додавання/видалення/переміщення по властивостях, оскільки всі рядки стають однаковими. ## Квадратні дужки @@ -205,7 +205,7 @@ let bag = { Тому більшість часу, коли назви властивостей відомі та прості, використовується крапка. А якщо нам потрібно щось складніше, то переходимо до квадратних дужок. -## Властивість зі змінної +## Скорочений запис властивості зі змінної (Property value shorthand) У реальному коді ми часто використовуємо наявні змінні як значення для імен властивостей. @@ -224,7 +224,7 @@ let user = makeUser("Іван", 30); alert(user.name); // Іван ``` -В наведеному вище прикладі назва властивостей `name` і `age` збігаються з назвами змінних, які ми підставляємо як значення цих властивостей. Такий підхід настільки поширений, що існують спеціальні *короткі властивості* для спрощення цього запису. +В наведеному вище прикладі назва властивостей `name` і `age` збігаються з назвами змінних, які ми підставляємо як значення цих властивостей. Такий підхід настільки поширений, що існує спеціальний *скорочений запис властивості зі змінної* (property value shorthand) для спрощення цього запису. Замість `name: name` ми можемо написати просто `name`: @@ -240,7 +240,7 @@ function makeUser(name, age) { } ``` -Ми можемо використовувати як звичайні властивості, так і скорочення в одному об’єкті: +Ми можемо одночасно в одному об'єкті використовувати і скорочення, і звичайні об'єкти: ```js let user = { @@ -252,12 +252,12 @@ let user = { ## Обмеження для імен властивостей -Як ми вже знаємо, змінна не може мати ім’я, зі списку слів, зарезервованих мовою, як-от "for", "let", "return" тощо. +Як ми вже знаємо, змінна не може мати ім’я зі списку слів зарезервованих мовою, таких як "for", "let", "return" тощо. -То для властивості об’єкта немає такого обмеження: +Але для властивості об’єкта немає такого обмеження: ```js run -// ці назви властивостей -- правильні +// ці назви властивостей правильні let obj = { for: 1, let: 2, @@ -288,7 +288,7 @@ alert( obj[0] ); // тест (таж сама властивість) ```js run let obj = {}; obj.__proto__ = 5; // присвоїмо число -alert(obj.__proto__); // [object Object] - значення -- це об’єкт, тобто не те, що ми очікували +alert(obj.__proto__); // [object Object] - значення є об’єктом, тобто не те, що ми очікували ``` Як ми бачимо з коду, присвоєння числа `5` ігнорується. @@ -299,7 +299,7 @@ alert(obj.__proto__); // [object Object] - значення -- це об’єк Помітною особливістю об’єктів у JavaScript, у порівнянні з багатьма іншими мовами, є можливість доступу до будь-якої властивості. Помилки не буде, якщо властивості не існує! -Читання відсутньої властивості просто повертає `undefined`. Тому ми можемо легко перевірити, чи існує властивість: +Спроба прочитати відсутню властивість просто повертає `undefined`. Тому ми можемо легко перевірити, чи існує властивість: ```js run let user = {}; @@ -352,7 +352,7 @@ alert( "test" in obj ); // true, властивість існує! У наведеному вище коді властивість `obj.test` технічно існує. Отже, оператор `in` працює правильно. -Такі ситуації трапляються дуже рідко, тому що `undefined` не слід чітко призначати. Ми в основному використовуємо `null` для "невідомих" або "порожніх" значень. Отже, оператор `in` -- екзотичний гість у коді. +Такі ситуації трапляються дуже рідко, бо `undefined` не слід явно призначати. Ми в основному використовуємо `null` для "невідомих" або "порожніх" значень. Отже, оператор `in` -- екзотичний гість у коді. ## Цикл "for..in" [#forin]