Saman With You Ответов: 1

Где вы ставите скобки в следующем операторе javascript


Привет,

Где вы ставите скобки в этом операторе Javascript:

var temp = da >= d3_svg_arcMax ? r0 ? "Z" : "M0" : r0 ? "M" : "M";


Эта структура используется в библиотеке d3, и это очень сбивает меня с толку.

Спасибо

Что я уже пробовал:

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

David_Wimbley

Что заставляет вас думать, что он нуждается в скобках? Что вы хотите в скобках?

Следующий код компилируется и запускается, поэтому я не знаю, в чем проблема.

var da = " 2";
var d3_svg_arcMax = " 3";
var r0 = " 3";

var temp = da >= d3_svg_arcMax ? r0 ? "Z": "M0": r0 ? "М": "М";
консоли.журнал("темп:" + темп);

Saman With You

Я не могу его отследить. Мне нужно знать, что является приоритетом операций. Какая переменная переходит в "temp" в конце и почему?

1 Ответов

Рейтинг:
8

F-ES Sitecore

Это немного сбивает с толку. Здесь является внешней операцией

var temp = da >= d3_svg_arcMax ? X : Y;


Это означает, что если da>=d3_svg_arcMax, то temp-это "X", в противном случае - "Y".

Таким образом, оглядываясь назад на исходный "X", можно сказать, что

r0 ? "Z" : "M0"


Это означает, что если r0 истинно, то вычислите значение "Z", в противном случае вычислите значение " M0"

А "Y" - это

r0 ? "M" : "M"


это означает, что если r0 истинно, то вычислите "M", иначе вычислите "M" - это на самом деле бессмысленно, и Y можно было бы поместить только с "M", но это к делу не относится.

Положить его вместе, если да - &ГТ;=d3_svg_arcMax и Р0 правда тогда темп с "Z", а если Р0 ложно, то температура "М0". Если да-это не &ГТ;=d3_svg_arcMax и Р0-правда, тогда "темп" - "м", но если R0 является ложным "темп" - "м"

Чтобы использовать скобки это было бы похоже

var temp = (da >= d3_svg_arcMax ? (r0 ? "Z" : "M0") : (r0 ? "M" : "M"));