Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вариант использования if (https://javascript.ru/forum/misc/25876-variant-ispolzovaniya-if.html)

Duda.Ml1986@gmail.com 18.02.2012 16:02

Вариант использования if
 
Переменная = (условие) ? если выполняется : если не выполняется;

Есть ли возможно использовать эту запись иначе, не присваивая никакого значения.

Если коротко, то в зависимости от условия должна запускаться соответствующая функция.

Хотелось бы избежать конструкции If (){}else{}

vasa_c 18.02.2012 16:22

ну так не присваивайте.
(условие ? действие : действие)


однако ваши желания избежать предназначенной для этого конструкции совершенно противоестественны.

Duda.Ml1986@gmail.com 18.02.2012 16:28

Странно, почему то этот вариант я сразу исключил
(условие ? действие : действие)

взятие в скобки.

Duda.Ml1986@gmail.com 18.02.2012 16:31

Цитата:

Сообщение от vasa_c (Сообщение 158284)
ну так не присваивайте.
(условие ? действие : действие)


однако ваши желания избежать предназначенной для этого конструкции совершенно противоестественны.

Конечно, но если бы Вы знали зачем я это делаю Вы бы так не говорили.

Например я пишу обучающий материал для своего КОТЭ, и хочу чтобы он усвоил конструкцию
if() {} else {}

и

условие ? действие : действие

Так что такой вариант приемлим в моем случае.

П.С. Но думаю javascript ему не осилить, с переменными такая война была.

DreamTheater 18.02.2012 16:34

Тернарная условная операция

Nekromancer 18.02.2012 16:54

Цитата:

Сообщение от Duda.Ml1986@gmail.com
Странно, почему то этот вариант я сразу исключил
(условие ? действие : действие)

взятие в скобки.

true ? alert(1) : alert(2)


Зачем вам скобки?

Duda.Ml1986@gmail.com 18.02.2012 17:29

Спасибо за просвещение.

Mахmахmахimus 18.02.2012 19:31

Цитата:

Сообщение от Nekromancer
Зачем вам скобки?

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

return (a == b)
			? выражение
			: выражение

при том условие берется в скобочки для красоты

DreamTheater 18.02.2012 19:39

Цитата:

Сообщение от Mахmахmахimus (Сообщение 158325)
я вот тоже не понял, достаточно просто точки с запятой на конце.
а вообще если выражения слишком большие то нормальные пасоны пишут так

return (a == b)
			? выражение
			: выражение

при том условие берется в скобочки для красоты

Вообще-то в таких случаях как раз весь оператор берется в скобки.
http://www.oracle.com/technetwork/ja...42311.html#438

Mахmахmахimus 18.02.2012 20:24

Цитата:

Сообщение от DreamTheater
Вообще-то в таких случаях как раз весь оператор берется в скобки.

Вообще-то в таких случаях:
Цитата:

Сообщение от Mахmахmахimus
если выражения слишком большие

код берется именно как я показал

Nekromancer 19.02.2012 01:32

А можно сделать так:
true && alert(1);

И избавиться от извращений, не правда ли? ;)

Mахmахmахimus 19.02.2012 04:29

Nekromancer,
я смотрю тебе приглянулось это :yes:?

а можно как тру обфуксатор поступить)

alert(true&&1||2);

alert(false&&1||2);

Nekromancer 19.02.2012 11:08

Цитата:

Сообщение от Mахmахmахimus
а можно как тру обфуксатор поступить)

Перебарщивать то не стоит.

vasa_c 21.02.2012 00:34

а вообще если выражения слишком большие то нормальные пасоны пишут так

return (a == b)
            ? выражение
            : выражение

при том условие берется в скобочки для красоты


Посонам здесь подфартило, что "? выражение" не приводится к нормальной js-конструкции.
Если злоупотреблять подобным можно в когда-нибудь нарваться на коронную шутку JS с неявной расстановкой точек с запятой.

Mахmахmахimus 21.02.2012 00:43

Цитата:

Сообщение от vasa_c
Если злоупотреблять подобным можно в когда-нибудь нарваться на коронную шутку JS с неявной расстановкой точек с запятой

Можно пример?


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