Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Технология программирования.doc
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
1.69 Mб
Скачать

Строковые операции

Операция

Результат

Примеры

строка1+строка2

Конкатенация– соединение двух строк в одну

"лист" + "5" даёт строкулист5

"лист " + "5" даёт строкулист 5

Эта операция применяется, когда значение хотя бы одного её операнда не является числом, или логическим значением, или null. При этом делается попытка привести значения операндов к строкам. Так, выражение "лист" + 5 даёт строку лист5, т.е. число 5 приводится к строке "5". Более сложных случаев лучше избегать.

Логические операции

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

К false приводятся значения 0, "", null, NaN и undefined. Остальные значения приводятся к true.

Операция

Название

Результат

!выражение

НЕ, NOT

(отрицание)

Выдаёт значение true, если значение операнда может быть приведено кfalse. В противном случае выдаётся значениеfalse.

выраж1&&выраж2

И,AND

(логическое произведение)

Выдаёт значение первого операнда, если оно может быть приведено к false. В противном случае выдаётся значение второго операнда.

выраж1||выраж2

ИЛИ, OR

(логическая сумма)

Выдаёт значение первого операнда, если оно может быть приведено к true. В противном случае выдаётся значение второго операнда.

Операции сравнения

Операция

Результат

Примеры,

когда выдаётся true

знач1==знач2

(равно)

Результат равен true, если операнды равны друг другу. Если значения имеют разные типы, выполняется приведение.

3==1+2

3=="3"

3==['3']

3==[1+2]

знач1===знач2

(тождественно)

Результат равен true, если операнды одного типа и равны друг другу. Приведение не выполняется.

3===1+2

"31"==="3"+"1"

x=[1]; y=x; x===y

знач1!=знач2

(не равно)

Результат равен true, если операнды не равны друг другу. Если значения имеют разные типы, выполняется приведение.

3!=2+2

3 != '1'+2

[3] != [3]

знач1!==знач2

(не тождественно)

Результат равен true, если операнды одного типа и не равны друг другу. Приведение не выполняется.

3 !== "3"

"3" !== "3"+"1"

x=[1]; y=[1]; x!==y

знач1<знач2

(меньше, перед)

Результат может быть trueтолько при сравнении чисел и строк. При сравнении строки и числа строка приводится к числу. Для остальных типов делается попытка преобразования к числам.

2<3

'ab'<'ba' 'a'<'aa'

'abc'<'ac'

2<"3" "2"<3

знач1>знач2

(больше, после)

Результат такой же, как для выражения

знач2<знач1

знач1<=знач2

(меньше или равно)

Результат такой же, как для выражения

!(знач1>знач2)

знач1>=знач2

(больше или равно)

Результат такой же, как для выражения

!(знач2<знач1)

При любом сравнении двух значений (равно, не равно, меньше, больше и т.п.) в языке JavaScript результат принимает логическое значение true или false.

Сравнение чисел происходит так же, как в математике. При сравнении строк сравниваются числовые коды символов по порядку слева направо (равными могут быть только одинаковые строки). Порядок (перед, после) строк определяется, как в словаре. Коды символов (на самом деле важен лишь порядок символов в алфавите) можно посмотреть и в программе Таблица символов Windows, и в меню Вставка/Символ любой программы из MS Office. При сравнении массивов сравниваются их адреса, т.е. имеет смысл только сравнение равноне равно. Так же происходит и сравнение записей и других объектов.

При сравнении значений разных типов некоторые операции сравнения пытаются привести операнды к сравнимым значениям, например, к числу или строке. Так, массив [1] приводится к числу 1 или строке "1". Во избежание лишних проблем не следует слишком надеяться на автоматическое приведение, лучше использовать специальные функции приведения, имеющиеся в языке (п. 12).