Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Че за синтаксис непонятный??? (https://javascript.ru/forum/misc/1066-che-za-sintaksis-neponyatnyjj.html)

SunYang 05.03.2008 00:14

Че за синтаксис непонятный???
 
столкнулся я в скрипте одном с незнакомой мне строчкой....

var ie = document.all ? true : false

непонятно применение символа "?" и ":"
что означает эта строчка и какой смысл использования этих символов?:confused:

Спасибо.

Dmitry A. Soshnikov 05.03.2008 00:39

SunYang, это сокращенная запись условного оператора (тринарный оператор). Т.е.:

var ie = document.all ? true : false


полностью эквивалентно:

var ie;
if (document.all) {
  ie = true;
} else {
  ie = false;
}


Есть еще "более сокращенные" записи:

var a = b || 2; // если b истинно, то a = b, иначе a = 2
!a && (a = 2); // если a ложно (или undefined), то a = 2

SunYang 05.03.2008 18:07

Фигасе, спасибо. Особенно удивили еще более сокращенные надписи.

Kolyaj 06.03.2008 09:21

Цитата:

Сообщение от SunYang
Особенно удивили еще более сокращенные надписи.

Чтобы не удивляли: в отличие от С(++) в javascript:
- Оператор && возвращает правый операнд, если он соответствует ложному значению, иначе левый.
- Оператор || возвращает правый операнд, если он соответствует истинному значению, иначе левый.

Илья Кантор 06.03.2008 15:22

Статья по операторам Операторы Javascript

umbabaraumba 13.03.2014 11:39

Цитата:

Сообщение от Илья Кантор (Сообщение 1425)
Статья по операторам Операторы Javascript

Видать адрес страницы поменялся
Страница не найдена

Страница с таким URL в данный момент не существует.

рони 13.03.2014 14:36

umbabaraumba,
Операторы


Часовой пояс GMT +3, время: 17:54.