diff --git a/modules/38-objects/100-objects/ru/README.md b/modules/38-objects/100-objects/ru/README.md index bf7c66de..b1f912f4 100644 --- a/modules/38-objects/100-objects/ru/README.md +++ b/modules/38-objects/100-objects/ru/README.md @@ -19,7 +19,18 @@ const len = name.length; console.log(len); // => 4 ``` -Во многих языках длину строки получают через специальную функцию, а в JavaScript свойства встроены прямо в язык. Свойства связаны с данными, у которых они берутся. Для примитивных типов все свойства описаны в документации, как, например, у [строк](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String). При этом у чисел свойств нет. +В предыдущих модулях для получения длины строки мы использовали учебную функцию `length()` из библиотеки `hexlet-basics/string`: + +```javascript +import { length } from 'hexlet-basics/string'; + +const name = 'Robb'; +console.log(length(name)); // => 4 +``` + +Это была временная замена — во многих языках длина строки действительно вычисляется через специальную функцию. В JavaScript же длина встроена прямо в язык как свойство `.length`. Начиная с этого урока учебная функция больше не понадобится: везде используем `.length`. + +Свойства связаны с данными, у которых они берутся. Для примитивных типов все свойства описаны в документации, как, например, у [строк](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String). При этом у чисел свойств нет. JavaScript позволяет обращаться к свойствам, которые не существуют (например, при опечатках). В таком случае их значением является `undefined`: @@ -117,3 +128,26 @@ const name = 'hexlet'; console.log(name.toUpperCase()); // => HEXLET console.log(name); // => hexlet ``` + +## Свойства и методы в выражениях + +Свойства и методы — такие же выражения, как переменные, константы или вызовы функций. Их можно использовать в арифметических операциях и передавать как аргументы другим функциям. + +Использование в операциях: + +```javascript +const name = 'Shaya'; +console.log(name.length + 5); // => 10 +console.log(`hi, ${name.toUpperCase()}!`); // => hi, SHAYA! +``` + +Использование как аргументов функций: + +```javascript +const firstName = 'Robb'; +const lastName = 'Shaya'; +// Передаём свойства прямо в вызов функции +console.log(Math.min(firstName.length, lastName.length)); // => 4 +``` + +Это позволяет писать компактный и выразительный код, не сохраняя промежуточные результаты в отдельных переменных.