Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion modules/38-objects/100-objects/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`:

Expand Down Expand Up @@ -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
```

Это позволяет писать компактный и выразительный код, не сохраняя промежуточные результаты в отдельных переменных.
Loading