Ответ 1
Да, это действительно, и он отлично работает в Chrome:
var a, b, c;
a = 6;
b = 7;
c = a !== b ? (a = 1, b = 2) : (a = 2, b = 1);
console.log("a = " + a);
console.log("b = " + b);
console.log("c = " + c);
Является ли это действующим JavaScript? Я видел пример, когда кто-то использовал запятые в тернарных условиях оператора, и он был отмечен как ошибка в моем редакторе, и пример не выполнялся в Chrome. Однако он работал в Firefox. После того, как я преобразовал все тернарные утверждения в операторы if/else, приложение запустилось в Chrome.
a!==b ? (a=1, b=2) : (a=2, b=1)
Edit:
Это фактический оператор в коде:
a!==0?b<0?(h=b/a,e=h-1,f=-2*b+2*a*e,i=-2*b+2*a*h,d=2*h*a-2*b-2*a):(h=b/a,e=h+1,f=2*b-2*a*e,i=2*b-2*a*h,d=-2*h*a+2*b):d=h=e=f=i=0
Да, это действительно, и он отлично работает в Chrome:
var a, b, c;
a = 6;
b = 7;
c = a !== b ? (a = 1, b = 2) : (a = 2, b = 1);
console.log("a = " + a);
console.log("b = " + b);
console.log("c = " + c);
Да:
a=1;
b=2;
a!==b ? (a=1, b=2) : (a=2, b=1)
console.log(a); // 1
console.log(b); // 2
и
a=1;
b=2;
a===b ? (a=1, b=2) : (a=2, b=1)
console.log(a); // 2
console.log(b); // 1
Как вы можете проанализировать, изменение оператора равенства корректно реагирует на наш тест, если вы посмотрите на результаты.
Или вы можете сделать это:
b = a!==b ? (a=1,2) : (a=2,1);
Прочитайте здесь о запятой.
Оператор запятой оценивает каждый из своих операндов (слева направо) и возвращает значение последнего операнда.