Я делаю небольшую утилиту для компиляции блока JavaScript с использованием C#. Я пытаюсь понять поток выполнения тернарного оператора. Теперь, когда я бегу JavaScript с помощью Chrome или Firefox:Результат ternary оператора Javascript
var k = 27;
var o = 78;
var a = k < 100 ? o+=2 > 11 ? "T" : "F" : o < 100 ? "J" : "P";
alert(a);
Он должен дать мне результат "T" или "F" если "о + = 2" возвращает ложь. Но вместо них он возвращает «78F». Может кто-нибудь, пожалуйста, объясните мне, в чем логика этого.
Я рекомендовал бы НЕ гнездования тройные операторов. Хотя всегда приятно иметь один-лайнер, намного легче понять другим разработчикам, если вы разделите это на инструкции if-else. Мне когда-то приходилось работать над приложением с до шести вложенными тройниками по частям.Это было зверь для отладки. – HockeyJ
используйте фигурные скобки '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Это, скорее всего, даст вам и желаемый результат. – Aukhan
Вложенные троицы - страшная идея. – rlemon