JavaScript. Подробное руководство, 6-е издание
Шрифт:
3.7. Неизменяемые простые значения и ссылки на изменяемые объекты
Между простыми значениями (
Кроме того, величины простых типов сравниваются по значению: две величины считаются одинаковыми, если они имеют одно и то же значение. Для чисел, логических значений,
Объекты отличаются от простых типов. Во-первых, они являются изменяемыми - их значения можно изменять:
Объекты не сравниваются по значению: два объекта не считаются равными, даже если они будут иметь одинаковые наборы свойств с одинаковыми значениями. И два массива не считаются равными, даже если они имеют один и тот же набор элементов, следующих в том же порядке:
Чтобы подчеркнуть отличие от простых типов JavaScript, объекты иногда называют ссылочными типами. Если следовать этой терминологии, значениями объектов являются ссылки, и можно сказать, что объекты сравниваются по ссылке: значения двух объектов считаются равными тогда и только тогда, когда они ссылаются на один и тот же объект в памяти.
Как следует из примера выше, операция присваивания объекта (или массива) переменной фактически присваивает ссылку: она не создает новую копию объекта. Если в программе потребуется создать новую копию объекта или массива, необходимо будет явно скопировать свойства объекта или элементы массива. Следующий пример демонстрирует такое копирование с помощью цикла for (раздел 5.5.3):
Точно так же, если потребуется сравнить два отдельных объекта или массива, необходимо будет сравнить значения их свойств или элементов. Ниже приводится определение функции, сравнивающей два массива:
3.8. Преобразование типов
JavaScript может гибко преобразовывать один тип в другой. Мы уже могли убедиться в этом на примере логических значений: везде, где интерпретатор JavaScript ожидает получить логическое значение, можно указать значение любого типа и JavaScript автоматически выполнит необходимое преобразование. Одни значения («истинные» значения) преобразуются в значение
Бастард
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
рейтинг книги
Ведун
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
рейтинг книги
Враг из прошлого тысячелетия
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Эволюционер из трущоб. Том 3
3. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 34
34. История Телепата
Фантастика:
фэнтези
боевая фантастика
аниме
рейтинг книги
Орленев
Жизнь в искусстве
Документальная литература:
биографии и мемуары
рейтинг книги
Полигон
S.T.A.L.K.E.R.
Фантастика:
боевая фантастика
рейтинг книги