Логические операторы

Логические операторы выполняют действия над логическими значениями. Все они приведены в табл. 19.5. А в табл. 19.6 и 19.7 показаны результаты выполнения этих операторов.

Таблица 19.5. Логические операторы

Оператор

Описание

;

НЕ (логическая инверсия)

&&

И (логическое умножение)

I I

ИЛИ (логическое сложение)

Таблица 19.6. Результаты выполнения операторов И и ИЛИ

Операнд 1

Операнд 2

&& (И)

II (ИЛИ)

true

true

true

true

true

false

false

true

false

true

false

true

false

false

false

false

Таблица 19.7. Результаты выполнения оператора НЕ

Операнд

! (НЕ)

Операнд

! (НЕ)

true

false

false

true

Основная область применения логических операторов - выражения сравнения (о них см. далее в этой главе). Приведем примеры таких выражений: а = (Ь > 0) && (с + 1 != d) ;

flag = !(status = 0);

Оператор typeof

Оператор typeof принимает в качестве операнда переменную или выражение и возвращает строку, описывающую тип данных операнда. Все значения, которые он может вернуть, перечислены в табл. 19.8.

Таблица 19.8. Значения, возвращаемые оператором typsof

Тип данных

Возвращаемое значение

Строковый

"string"

Числовой

"number"

Логический

"boolean"

Объект

"obj ect"

Функция

"function"

Клип

"movieclip"

null

"null"

undefined

"undefined"

Оператор typeof может использоваться, например, так:

status = typeof(somevar); Здесь мы присваиваем результат выполнения оператора typeof строковой переменной status. Впоследствии он может быть использован, например, в условном выражении.

Совместимость и преобразование типов данных

И напоследок рассмотрим еще два важных вопроса: совместимость типов данных и преобразование одного типа к другому.

Что получится, если сложить два числовых значения? Правильно - еще одно числовое значение. А если сложить число и строку? Трудно сказать. Тут Flash сталкивается с проблемой несовместимости типов данных и пытается сделать эти типы совместимыми, преобразуя один из них к другому. Сначала он пытается преобразовать строку в число и, если это удается, выполняет сложение. В случае неудачи число будет преобразовано в строку, и две полученные строки будут объединены. Например, в результате выполнения операторов var а, Ь, с, d, е, f; а = 11; Ь = "12"; с = а + Ь; d = "Flash"; е = 8; f = d + е; значение переменной ь при сложении с переменной а будет преобразовано в числовой тип; таким образом, переменная с будет содержать значение 2 3. Но так как значение переменной d не может быть преобразовано в число, значение е будет преобразовано в строку, и результат - значение f - станет равным "Flash8".

Логические величины преобразуются либо в числовые, либо в строковые, в зависимости от конкретного случая. Значение true будет преобразовано в число 1 или строку "1", а значение false - в о или "О".

Видно, что Flash изо всех сил пытается правильно выполнить даже некорректно написанные выражения. Иногда это получается, но чаще все работает не так, как планировалось, и, в конце концов, выполнение сценария прерывается в связи с обнаружением ошибки совсем в другом его месте, на абсолютно верном операторе. Поэтому лучше всего не допускать подобных казусов, оперировать только переменными совместимых типов и самим выполнять нужные преобразования типов.


⇐ вернуться назад | | далее ⇒