Возьмите следующий javascript:

var x = (p) ? 1 : 0;

Р может быть любым значением. Может ли иметь место ситуация, в которой скобка может иметь эффект?

Если да, приведите примеры.

0
doekman 1 Июл 2010 в 12:35

4 ответа

Лучший ответ

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

Но нет, скобки не влияют на р в целом. И я не знаю, зачем их кому-то ставить, потому что я не думаю, что они улучшают читабельность.

1
SiN 1 Июл 2010 в 08:42

Это немного надуманный пример, но почему бы и нет?

var y = -2;
var x = (y+=2)?0:1?1:0;
alert(x); // will alert '1'

Против

var y = -2;
var x = y+=2?0:1?1:0;
alert(x); // will alert '-2'

Посмотрите эту таблицу приоритетов Javascript: http://www.codehouse.com/javascript/precedence/ . Все, что находится ниже тернарного оператора (например, "?:"), Потребует скобок, если вы используете его в вычисляемом выражении троичного оператора.

2
Faisal 1 Июл 2010 в 08:45

Я не могу придумать причину, по которой вам понадобятся круглые скобки, кроме читабельности.

0
Tom Gullen 1 Июл 2010 в 08:38

Нет. Иногда это делается по аналогии с:

if (p)

Где скобки являются обязательными.

0
bobince 1 Июл 2010 в 08:42