Язык Java Script




 

1. Глава. Описание языка.

 

1.1 Типы данных, переменные и литералы.

Типы данных. JavaScript распознает следующие типы:

    • Numbers, такие как 17 или 3.1415928
    • Logical (Boolean) , true или false
    • Strings, такие как "Hello !"
    • null, специальное ключевое слово для обозначения пустого значения.

Нет явного различия между целыми и действительными данными. Нет явного типа date, но есть возможность использовать объект date и его методы для обращения с датами.

1.1.1 Преобразование типов данных.

В JavaScript необязательно определять тип данных данных и они преобразуются автоматически в процессе выполнения программы. Так, например, можно определить переменную var str15 = 42, а позже можно присвоить этой же переменной строковое значение str15 = "This is new value..." и это не вызовет ошибки. В выражениях, где используются одновременно числовые и строковые значения, JavaScript преобразует числовое значение к строковому. Например, в следующих операторах

x = "This is new value - " + 42

y = 42 + " - is new value"

первый возвратит строку " This is new value - 42", второй - "42 -is new value".

В JavaScript имеются специальные функции для манипулирования строковыми и числовыми значениями:

    • - eval - пытается конвертировать строковое значение к типу number;
    • - parseInt - преобразует строковое значение в целое, если это возможно;
    • - parseFloat - преобразует строковое значение в число с плавающей запятой, если это возможно.

1.1.2 Переменные.

Имена переменных в JavaScript должны начинаться с буквы или подчеркивания("_"), последующие символы могут быть также и цифрами (0-9). Следует учитывать, что JavaScript чувствителен к регистру. Некоторые примеры правильных имен - Number_hits, temp99, и _name.

Переменные можно объявить двумя способами: просто назначая это значение, например, x = 42 или же с ключевым словом var, например, var x = 19.

Различают глобальные и локальные переменные. Если переменная объявлена вне функции, то это глобальная переменная и ее можно использовать везде в текущем документе. Локальная переменная доступна только в пределах функции. Использование var необязательно, но нужно использовать это ключевое слово, если желаете иметь локальную переменную с таким же именем как у глобальной. Имеется доступ к глобальным переменным одного окна или фрейма в другом окне или фрейме через их имя. Например, если переменная phoneNumber обьявлена в родительском фрейме, можно обратиться к этой переменной из дочернего фрейма как parent.phoneNumber.

1.1.3 Литералы.

Литералы - это константы различных типов.

Целые. Целые могут выражаться десятичным числом (основание системы счисления-10), шестнадцатеричным (16), и восьмеричным (8). Различаются он следующим образом: десятичное обязательно начинается не с нуля, предшествующий нуль означает, что это восьмеричное число, а предшествующие 0x ( или 0X ) означают шестнадцатеричное. Шестнадцатеричное целое может включать цифры (0-9) и символы a-f и A-F. Восьмеричное целое только цифры 0-7. Некоторые примеры целых литералов: 17, 0xFFF, и -345.

Литералы с плавающей точкой. Они могут иметь следующие части: десятичное целое число, десятичная точка("."), дробная часть (десятичное целое), признак порядка ("e" или "E") и порядок (десятичное целое со знаком). Некоторые примеры литералов с плавающей точкой - 3.1415, -3.1E1, .107e2, и 2E-10.

Литералы Boolean. Тип Boolean имеет два значение: true и false.

Строковые литералы. Это ноль или больше символов, заключенных в двойные ( " ) или одинарные кавычки ('). Примеры строковых литералов: "row" , 'row' , "4321" , "one line \n another line" В дополнение к обычным символам, можно также включить специальные символы, как это показано в последнем элементе. В следующую таблицу внесены специальные символы, которые можно использовать в JavaScript.

Символ Значение
\b забой
\f перевод страницы
\n новая строка
\r возврат каретки
\t табуляция
\\ двойной обратный слеш

Для того чтобы использовать обратный слеш внутри строки необходимо использовать двойной обратный слеш. Например, чтобы определить путь к файлу (c:\temp) как строку следует указать var home = "c:\\temp"

 

1.2 Выражения и простые операторы.

Выражение - любой, имеющий значение набор литералов, переменных, операторов, и выражений, который приводит к единственному значению. Значение может быть числом, строкой или Boolean. Специальное ключевое слово null обозначает пустое значение. Следует различать null и переменные, которым не были присвоены значения, последние не определены и будут вызывать ошибку во время выполнения, если используются как числовые переменные. Однако элементы массива, которым не было присвоено значение оцениваются как false. В следующем примере исполняется оператор str="Hello !", потому что элемент массива не определен: myArray=new Array() if (!myArray["notThere"]) str="Hello !"

1.2.1 Условные выражения.

Условное выражение может иметь одно из двух значений, в зависимости от условия.

Его синтаксис таков: (condition)? value1: value2

Если условие (condition) истинно, выражение имеет значение value1, иначе - value2. Можно использовать условное выражение везде, где допустимо стандартное выражение. Например, status = (age >= 50) ? "old" : "young"

1.2.2 Оператор присваивания.

Оператор присваивания (=) присваивает значение правого операнда левому. То есть x =y присваивает x значение y. Существует сокращенная форма оператора присваивания, общий вид которой:

<переменная> <знак операции> = <выражение>

при этом подразумевается выполнение следующего оператора присваивания: <переменная>=<переменная><знак операции><выражение>

Знаком операции могут быть: +(сложение), -(вычитание), *(умножение), /(деление), %(деление по модулю), <<(сдвиг влево), >>(сдвиг вправо), >>>(сдвиг вправо с заполнением нулями), &(побитовое И), ^(побитовое исключающее ИЛИ), |(побитовое ИЛИ).

1.2.3 Операторы cравнения.

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

оператор описание оператора пример
равно(==) возвращает true, если операнды равны x == y
не равно(!=) озвращает true, если операнды не равны x != y
больше(>) возвращает true, если левый операнд больше x > y
больше или равно(>=) возвращает true, если левый операнд больше или равен правому x >= y
меньше (<) возвращает true, левый операнд меньше x < y
меньше или равно (<=) возвращает true, левый операнд меньше или равен правому x <= y

 

1.2.4 Арифметические операторы.

Стандартные арифметические операторы - сложение(+), вычитание(-), умножение (*) и деление (/). Эти операторы работают также, как и в других языках программирования.

Деление по модулю (%). Оператор деления по модулю используется следующим образом:var1 % var2, возвращается остаток от деления var1 на var2. Например, 12%5 возвращает 2.

Приращение(++)(инкремент). Оператор приращения используется следующим образом: var++ или ++var. Этот оператор увеличивает (добавляет единицу) операнд и возвращает значение. Если используется постфиксная форма, то сначала возвращается значение, затем происходит увеличение. При использовании префиксной формы сначала происходит увеличение, затем возращение значения. Например, если x=3, тогда выражение y=x++ приведет к тому, что у=3 и х=4, а выражение у=++х к тому, что х=4 и у=4.

Уменьшение(--)(декремент). Оператор уменьшения используется следующим образом: v