Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работы по JavaScript.docx
Скачиваний:
16
Добавлен:
11.02.2015
Размер:
635 Кб
Скачать

Условные операторы: if, '?'

  1. Оператор if

  2. Преобразование к логическому типу

  3. Неверное условие, else

  4. Несколько условий, else if

  5. Оператор вопросительный знак '?'

  6. Несколько операторов '?'

  7. Нетрадиционное использование '?'

Иногда, в зависимости от условия, нужно выполнить различные действия. Для этого используется оператор if. Например:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

1

var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');

2

  

3

if (year != 2011) alert('А вот и неправильно!');

Оператор if

Оператор if («если») получает условие, в примере выше это year != 2011. Он вычисляет его, и если результат — true, то выполняет команду.

Если нужно выполнить более одной команды — они оформляются блоком кода в фигурных скобках:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

1

if (year != 2011) {

2

  alert('А вот..');

3

  alert('..и неправильно!');

4

}

Рекомендуется использовать фигурные скобки всегда, даже когда команда одна. Это улучшает читаемость кода.

Преобразование к логическому типу

Оператор if (...) вычисляет и преобразует выражение в скобках к логическому типу.

В логическом контексте число 0, пустая строка "", null и undefined, а также NaN являются false, остальные значения — true.

Например, такое условие никогда не выполнится:

if (0) { // 0 преобразуется к false

  ...

}

… А такое — выполнится всегда:

if (1) { // 1 преобразуется к true

  ...

}

Вычисление условия в проверке if (year != 2011) может быть вынесено в отдельную переменную:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

1

var cond = (year != 2011);  // true/false

2

  

3

if (cond) {

4

  ...

5

}

Важность: 5

Выведется ли alert?

if ("0") {

  alert('Привет');

}

Решение

Решение

Да, выведется, т.к. внутри if стоит строка "0".

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

Можно запустить и проверить:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

1

if ("0") {

2

  alert('Привет');

3

}

[Открыть задачу в новом окне]

Неверное условие, else

Необязательный блок else («иначе») выполняется, если условие неверно:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

1

var year = prompt('Введите год ECMA-262 5.1', '');

2

  

3

if (year == 2011) {

4

  alert('Да вы знаток!');

5

} else {

6

  alert('А вот и неправильно!'); // любое значение, кроме 2011

7

}

Несколько условий, else if

Бывает нужно проверить несколько вариантов условия. Для этого используется блок else if .... Например:

показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

1

var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');

2

  

3

if (year < 2011) {

4

  alert('Это слишком рано..');

5

} else if (year > 2011) {

6

  alert('Это поздновато..');

7

} else {

8

  alert('Да, точно в этом году!');

9

}

В примере выше JavaScript сначала проверит первое условие, если оно ложно — перейдет ко второму — и так далее, до последнего else.

Важность: 2

Напишите код, который будет спрашивать: «Каково «официальное» название JavaScript?».

Если посетитель вводит «EcmaScript», то выводить «Верно!», если что-то другое — выводить «Не знаете? «EcmaScript»!».

Блок-схема:

Результат в действии: tutorial/intro/ifelse_task2.html

Решение

Решение

Решение: tutorial/intro/ifelse_task2.html.

[Открыть задачу в новом окне]

Важность: 2

Напишите код, который получает значение prompt, а затем выводит alert:

  • 1, если значение больше нуля,

  • -1, если значение меньше нуля,

  • 0, если значение равно нулю.

Можно посмотреть в действии: tutorial/intro/if_sign.html

Решение

Решение

tutorial/intro/if_sign.html

[Открыть задачу в новом окне]

Важность: 3

Напишите код, который будет спрашивать логин (prompt).

Если посетитель вводит «Админ», то спрашивать пароль, если нажал отмена (escape) — выводить «Вход отменён», если вводит что-то другое — «Я вас не знаю».

Пароль проверять так. Если введён пароль «Чёрный Властелин», то выводить «Добро пожаловать!», иначе — «Пароль неверен», при отмене — «Вход отменён».

Блок-схема:

Для решения используйте вложенные блоки if. Обращайте внимание на стиль и читаемость кода.

Результат в действии: tutorial/intro/ifelse_task.html

Решение

Решение

Решение: tutorial/intro/ifelse_task.html.

Обратите внимание на дополнительные вертикальные отступы внутри if. Они полезны для лучшей читаемости кода.

[Открыть задачу в новом окне]