ИНФОРМАЦИЯ,    ДИЗАЙН,    ПЕРЕВОДЫ,    РЕКЛАМА   .   .   .
w a p - с а й т
Информационный портал
Сегодня:  
admin@aranea.ru
+79068922256

  aranea.ru || JavaScript - Введение | Копирование, передача и сравнение данных

Копирование, передача и сравнение данных.

В JavaScript способ манипулирования данными зависит от типа самих данных.

По значению – по ссылке

Числовые и булевы (true и false) значения копируются, передаются и сравниваются по значению. Когда вы копируете или передаете по значению, вы локализуете место в компьютерной памяти и помещаете в него значение исходного документа. Если вы затем измените исходный документ, копия не подвергается воздействию (и наоборот), так как оба являются раздельными элементами.

Объекты, массивы и функции в основном копируются, передаются и сравниваются по ссылке. Когда вы копируете или передаете по ссылке, вы создаете указатель на исходный пункт, и используете этот указатель, как если бы он был копией. Если вы меняете исходный документ, то вы меняете оба оригинал и копию (и наоборот). Реально существует только один элемент; "копия" фактически не является копией, это лишь ссылка на данные.

Обратите внимание. Вы можете изменить это поведение для объектов и массивов, определяя для них метод assign( ).

И, в заключение, строки копируются и передаются по ссылке, но сравниваются по значению.

Обратите внимание. Из-за того, как конструируется набор символов ASCII, заглавные буквы предшествуют строчным буквам в расположении: и например, при сравнении "Zoo" меньше, чем "aardvark."

Передача параметров функциям

Когда вы передаете параметр функции по значению, то вы делаете отдельную копию такого параметра, копию, которая существует только внутри функции. С другой стороны, если вы передаете параметр по ссылке, и функция меняет значение такого параметра, то он меняется везде в программе.

Тестирующие данные

Когда вы осуществляете тест по значению, то вы сравниваете два различных пункта, выясняя, равны они или нет. Обычно, это сравнение выполняется на побайтовой основе. Когда вы тестируете по ссылке, то вы проверяете, являются ли два пункта указателями на один оригинальный пункт. Если они выполняют это условие, то они сравниваются как равные; если нет, даже если они содержат одинаковые значения, то они сравниваются побайтово как неравные.

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

← Назад | Вперед →
Copyright © 2006 -  aranea.ru