Главная страница

Работы по JavaScript. JavaScript с Ильей Кантором


Скачать 0.61 Mb.
НазваниеJavaScript с Ильей Кантором
АнкорРаботы по JavaScript.docx
Дата03.09.2018
Размер0.61 Mb.
Формат файлаdocx
Имя файлаРаботы по JavaScript.docx
ТипДокументы
#24011
страница8 из 9
1   2   3   4   5   6   7   8   9

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


Иногда нужно в зависимости от условия присвоить переменную. Например:
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

01

var access;

02

var age = prompt('Сколько вам лет?', '');




03

  

04

if (age > 14) {




05

  access = true;

06

} else {




07

  access = false;

08

}




09

  

10

alert(access);

Оператор вопросительный знак '?' позволяет делать это короче и проще.

Он состоит из трех частей:

условие ? значение1 : значение2

Проверяется условие, затем если оно верно — возвращается значение1 , если неверно — значение2, например:

access = (age > 14) ? true : false;

Оператор '?' выполняется позже большинства других, в частности — позже сравнений, поэтому скобки можно не ставить:

access = age > 14 ? true : false;

.. Но когда скобки есть — код лучше читается. Так что рекомендуется их писать.

В данном случае можно было бы обойтись и без оператора '?', т.к. сравнение само по себе уже возвращает true/false:

access = age > 14;

«Тернарный оператор»

Вопросительный знак — единственный оператор, у которого есть аж три аргумента, в то время как у обычных операторов их один-два.
Поэтому его называют «тернарный оператор».

Важность: 5

Перепишите if с использованием оператора '?':
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

1

if (a + b < 4) {

2

  result = 'Мало';




3

} else {

4

  result = 'Много';




5

}

Решение

Решение

result = (a + b < 4) ? 'Мало' : 'Много';

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

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


Несколько операторов if..else можно заменить последовательностью операторов '?'. Например:
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

   

1

var a = prompt('a?', 1);

2

  




3

var res = (a == 1) ? 'значение1' : 

4

  (a == 2) ? 'значение2' : 




5

  (a > 2) ? 'значение3' : 

6

  'значение4';




7

  

8

alert(res);

Поначалу может быть сложно понять, что происходит. Однако, внимательно приглядевшись, мы замечаем, что это обычный if..else!

Вопросительный знак проверяет сначала a == 1, если верно — возвращает значение1, если нет — идет проверять a == 2. Если это верно — возвращает значение2, иначе проверка a > 2 и значение3.. Наконец, если ничего не верно, то значение4.

Альтернативный вариант с if..else:
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

01

var res;

02

  




03

if (a == 1) {

04

  res = 'значение1';




05

} else if (a == 2) {

06

  res = 'значение2';




07

} else if (a > 2) {

08

  res = 'значение3';




09

} else {

10

  res = 'значение4';




11

}

Важность: 5

Перепишите if..else с использованием нескольких операторов '?'.

Для читаемости — оформляйте код в несколько строк.
показать чистый исходник в новом окнеСкрыть/показать номера строкпечать кода с сохранением подсветки

01

var message;

02

  




03

if (login == 'Вася') {

04

  message = 'Привет';




05

} else if (login == 'Директор') {

06

  message = 'Здравствуйте';




07

} else if (login == '') {

08

  message = 'Нет логина';




09

} else {

10

  message = '';




11

}

Решение

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

1

var message = (login == 'Вася') ? 'Привет' :

2

  (login == 'Директор') ? 'Здравствуйте' :




3

  (login == '') ? 'Нет логина' :

4

  '';

[Открыть задачу в новом окне]
1   2   3   4   5   6   7   8   9


написать администратору сайта