en.javascript.info/1-js/4-data-structures/1-properties-and-methods/article.md
2015-01-11 01:54:57 +03:00

118 lines
No EOL
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Введение в методы и свойства
Все значения в JavaScript, за исключением `null` и `undefined`, содержат набор вспомогательных функций и значений, доступных "через точку".
Такие функции называют "методами", а значения -- "свойствами". Здесь мы рассмотрим основы использования свойств и методов.
[cut]
## Свойство str.length
У строки есть *свойство* `length`, содержащее длину:
```js
//+ run
alert( "Привет, мир!".length ); // 12
```
Можно и записать строку в переменную, а потом запросить её свойство:
```js
//+ run
var str = "Привет, мир!";
alert( str.length ); // 12
```
## Метод str.toUpperCase()
Также у строк есть *метод* `toUpperCase()`, который возвращает строку в верхнем регистре:
```js
//+ run
var hello = "Привет, мир!";
*!*
alert( hello.toUpperCase() ); // "ПРИВЕТ, МИР!"
*/!*
```
[warn header="Вызов метода -- через круглые скобки!"]
Обратите внимание, для вызова метода обязательно нужны круглые скобки.
Посмотрите, например, результат обращения к `toUpperCase` без скобок:
```js
//+ run
var hello = "Привет";
*!*
alert( hello.toUpperCase ); // function...
*/!*
```
Метод -- это встроенная команда ("функция", мы поговорим о них позже), которую нужно вызвать для получения значения. При обращении без скобок мы получим саму эту функцию. Как правило браузер выведет её как-то так: `"function toUpperCase() { ... }"`.
А чтобы получить результат -- нужно произвести её вызов, добавив скобки:
```js
//+ run
var hello = "Привет";
*!*
alert( hello.toUpperCase() ); // ПРИВЕТ
*/!*
```
[/warn]
Более подробно с различными свойствами и методами строк мы познакомимся в главе [](/string).
## Метод num.toFixed(n)
Есть методы и у чисел, например `num.toFixed(n)`. Он округляет число `num` до `n` знаков после запятой, при необходимости добивает нулями до данной длины и возвращает в виде строки (удобно для форматированного вывода):
```js
//+ run
var n = 12.345;
alert( n.toFixed(2) ); // "12.35"
alert( n.toFixed(0) ); // "12"
alert( n.toFixed(5) ); // "12.34500"
```
Детали работы `toFixed` разобраны в главе [](/number).
[warn header="Обращение к методам чисел"]
К методу числа можно обратиться и напрямую:
```js
//+ run
alert( 12.34.toFixed(1) ); // 12.3
```
...Но если число целое, то будет проблема:
```js
//+ run
alert( 12.toFixed(1) ); // ошибка!
```
Ошибка произойдёт потому, что JavaScript ожидает десятичную дробь после точки.
Это -- особенность синтаксиса JavaScript. Вот так -- будет работать:
```js
//+ run
alert( 12..toFixed(1) ); // 12.0
```
[/warn]
## Итого
В этой главе мы познакомились с методами и свойствами.
Почти все значения в JavaScript, кроме разве что `null` и `undefined` имеют их и предоставляют через них разный функционал.
Далее мы подробно разберём основные свойства и методы структур данных в JavaScript.