![]() |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Глава 9. Переменные языка JavaScriptЧестно сказать я с начала не хотел вводить эту тему. Что можно говорить о переменных, особенно в JavaScript? Но потом вспомнил, как иногда разбирался со сложными конструкциями и с трудом понимал некоторые, казалось бы недопустимые в других языках программирования выражения. Можно сказать так: здесь вам не будет ошибки "Неверный тип данных", а если и будет то очень редко. Если вы работали с другими языками программирования, тогда вспомните как часто у вас возникала ошибка о неверных типах данных. В языке JavaScript тип данных может с легкостью переопределяться, при этом вы можете и не заметить в каком месте, - вот в этом то и сложность. С другой стороны, если вы будете хорошо ориентироваться в принципах преобразований типов, знать все свойства переменных и массивов, эти возможности только принесут вам уверенность в написании программ. Переменные языка JavaScript могут хранить значения различных типов:
Чтобы сохранить какие-либо значения при загрузке нового документа в JavaScript имеются только 2 решения:
<script
language="JavaScript"> Cookies позволяют сохранять небольшие фрагменты информации на локальном диске пользователя. Устанавливая значения cookies и прореряя их на последующих стадиях работы, иожно восстанавливать необходимые значения. Более подробно о cookies будем говорить позже. Имена переменных, создание переменных В языке
JavaScript создать переменную гораздо проще, чем в других
языках программирования. Например, при создании переменной нет
необходимости указывать ее тип. Переменные определяют как с
начальными значениями, так и без них. В процессе выполнения
программы уже созданные переменные можно даже приводить к
различным типам данных. Имена переменных могут начинаться с
любой буквы (от a до z, или A-Z ) либо с символа подчеркивания
(_), оставшаяся часть может содержать цифры, символы
подчеркивания и буквы. Помните то, что в именах переменных
различаются символы верхнего и нижнего регистра: например
MyVariable - это не то же что myvariable.
var MyVariable = 35 создает переменную с именем MyVariable, содержащую числовое значение 35. Переменная существует до тех пор, пока загружен текущий документ. Если вы создаете эту переменную во фреймосодержащем документе верхнего уровня, к ней следует обращаться с помощью выражения top.MyVariable, а еще лучше parent.MyVariable для подстраховки от вложенных фреймов. В языке JavaScript переменные можно переопределять, даже задавая другой тип данных. Например после выполнения оператора var MyVariable = "35" переменная будет уже хранить строку "35". Подобные преобразования-то и приводят иногда к недоразумениям. Вот например:
как вы думаете какое значение примет переменная "c" после выполнения программы? Если вы не знакомы с правилами преобразования переменных в JavaScript - не угадаете. Значение переменной "c" после завершения блока будет равным числовому значению 320. О принципах преобразования типов переменных будем говорить позже. Переменную можно определить и не используя оператор "Var", а просто достаточно присвоить значение, причем каков тип данных будет присвоен, того типа и окажется переменная. Оператор "Var" используется по большей части для читабельности JS-программы. Переменная может быть задана и без начальных значений, например: var MyVariable; создана переменная с именем MyVariable, не имеющая определенного типа данных и начального значения. Переменные, создаваемые при помощи таких описаний, известны как неопределенные (null variable). Например сравнивая такую переменную со значением null, можно узнать, определена ли переменная. Однако нельзя путать разные вещи: ""- пустая строка это строковый тип и вовсе не null-значение. Тип
переменной может быть установлен в любом месте JS-программы в
отличие от других языков программирования, что дает
дополнительную гибкость, но и возможность запутаться - помните
это. К переменной, которая не создана, обратиться невозможно.
Если нужно создать временную переменную, например счетчик
цикла, нужно записать перед ней префикс var: Строковые переменные Строка представляет собой множество символов, заключенных в одинарные или двойные кавычки. Строки в JavaScript рассматриваются как объекты. Это практически самый распространенный вид объектов, поэтому в JavaScript имеется множество стандартных функций, предназначенных для управления строками. Создать объект String можно одним из нескольких способов:
var myVariable = "Хорошее пиво"; Приведенный оператор присваивает строку "Хорошее пиво" строковой переменной myVariable. Переменная myVariable рассматривается как строковый объект и может использовать любой из стандартных методов объекта String языка JavaScript. Оператор Var можно пропустить, как и говорилось ранее он нужен в основном для читабельности программы. Для создания строковых объектов допускается использовать конструктор String() с оператором new. В действительности объект String не относится к языку JavaScript, а является встроенным объектом браузера главным образом потому, что строки создаются тогда, когда пользователь в них нуждается. Рассмотрим пример: var myVariable = new String(); Этот оператор создает новый объект - пустую строку с именем myVariable. Изначально это пустая строка (""), а значение свойства myVariable.length равное 0. Конструктор String() допускает передачу заданной строки в виде аргумента: var myVariable = new String("Правильное пиво"); Строковый объект может содержать специальные символы, управляющие форматированием строк:
Объект String имеет только одно свойство - length, значением которого является количество символов в строке, содержащейся в объекте. Методы объекта String можно разделить на две категории:
Приведем перечень методов: (буква Ф - методы форматирования, а буква У - управления строками)
Числовые переменные Числовые значения могут быть либо целыми, либо числами с плавающей точкой. Числа с плавающей точкой называют действительными или вещественными. К числовым значениям применимы операции:
Булевы переменные Булевы, или
логические, переменные содержат только литеральные значкения -
true и false - и используются в логических выражениях и
операторах. Переменные-массивы Переменные-массивы содержат упорядоченные наборы значений одного типа, для удобства представленные в виде одной переменной. Многие стандартные объекты-свойства документа в языке JavaScript, в частности гиперсвязи и метки, являются массивами. В языке JavaScript к элементу массива следует обращаться при помощи выражения: arrayName[index] где arrayName - имя массива, а index - числовая переменная или число, задающее позицию элемента в массиве. Например, arrayName[0] является первым элементом этого массива. Индексы элементов массива в языке JavaScript начинаются с нуля. Элементы массива могут быть любого типа, например строками или булевыми переменными. Кроме того, при определенных условиях массив может содержать элементы различных типов данных. В языке JavaScript массивы создаются при помощи:
var path = "c:/images/" , При использовании конструктора Array() значение свойства length устанавливается автоматически. Поэтому после инициализации элементов массива в приведенном примере выражение arrayImg.length возвращает значение 2. Элементы массива также могут быть заданы как параметры конструктора: var path
= "c:/images/" , Данное выражение представляет собой
сокращенную запись предыдущего
примера. var myArray = new Array(3.14, true, 85, date(), "word"); создает массив, элемент
myArray[0] которого является числом с плавающей запятой,
элемент myArray[1] - булевым значением, элемент myArray[3] -
объектом Date. var myArray = new Array; двадцать первому элементу
массива присваивается строковое значение "Это 21 элемент
массива", а значение свойства myArray.length равно 21
независимо от того имеют ли значения элементы массива с
индексом меньше 20. myArray = new Array(10); оператор создает массив из 10-ти элементов от 0 до 9. Значение свойства length массива нельзя установить путем присваивания, так как length является свойством только для чтения. Например, чтобы задать значение 10 для свойства length нужно только определить значение последнего, в данном случае 9-го элемента массива: myArray = new Array(); Кроме того, существует возможность задать значения элементов массива при его конструировании : myArray = new Array(0,0,0,0,0,0); Конструктор Object() Понятия объект и
массив равнозначны, хотя конструкторы Object() и Array()
работают по-разному. Конструктору Object() невозможно передать
несколько элементов массива, поэтому такое выражение var myObj = new
Object(); Чтобы узнать размер массива, созданного подобным образом, необходимо обратиться к элементу myObj[0]. Значением свойства myObj.length является null, так, как значение не определено. Преобразование строк и чисел Наконец подошли к самой интересной теме. Дело в том, что в языке JavaScript в отличие от других языков нет функций типа Val() и Str(). Однажды я видел программку на языке JavaScript, автора не буду называть, где при помощи всевозможных преобразований типов данных была попытка запутать программу для "непродвинутых" пользователей. Так вот, нужно запомнить два правила:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © dmsdesign.ru Электронная почта: mail@dmsdesign.ru |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||