Методы встроенных типов
Встроенные типы и подтипы, которые мы только что обсудили, содержат логику,
отраженную в достаточно мощныx и полезныx свойствах и методах.
Например:
______________________________________________________
var a = "hello world";
var b = 3.14159;
a.length;
// 11
a.toUpperCase();
// "HELLO WORLD"
b.toFixed(4);
// "3.1416"
______________________________________________________
Возможность вызова `a.toUpperCase()` более сложна и трудоемка, чем факт
существования этого метода у значения.
Коротко говоря, есть форма обертки объекта `String` (заглавная `S`), обычно
называемая "родной" (или "нативной"), которая связывается с примитивным
типом `string`; именно эта обертка определяет метод `toUpperCase()` в своем
прототипе.
Когда вы используете примитивное значение, такое как `"hello world"`, подобно
объекту, ссылаясь на свойство или метод (к примеру, `a.toUpperCase()` в
предыдущем кусочке кода), JS автоматически "упаковывает" значение в его
обертку-двойника (скрытую внутри).
Значение типа `string` может быть обернуто объектом `String`, значение типа
`number` может быть обернуто объектом `Number`, а `boolean` может быть
обернуто объектом `Boolean`. В основном, вам не нужно беспокоиться о прямом
использовании этих оберток значений — отдавайте предпочтение примитивным
формам значений практически во всех случаях, а об остальном позаботится
JavaScript.
**Примечание:** Более детальная информация о родных типах в JS и "упаковке"
есть в главе 3 книги *Типы и синтаксис* этой серии. Для лучшего понимания
прототипов объектов см. главу 5 книги *this и прототипы объектов* этой серии.
Сравнение значений
Есть два основных типа сравнения значений, которые могут понадобиться вам в
JS программах: *равенство* и *неравенство*. Результатом любого сравнения
является только значение типа `boolean` (`true` или `false`), независимо от
сравниваемых типов значений.
Do'stlaringiz bilan baham: |