Запятая - это отдельный оператор в javascript:
Оператор запятой оценивает оба своих операнда (слева направо) и возвращает значение второго операнда.
Вы усвоили только часть выражения:
Тогда есть 63 <= a && 77> = a?a = 65: 48
На самом деле это немного длиннее (с некоторым форматированием):
63 <= a && 77 >= a
? a = 65
: 48 <= a && 57 >= a
? a = 48
: c & 1
? 97 <= a && 122 >= a
? a = 65
: 197 == a || 229 == a
? c &= 5
: 192 <= a && 687 >= a
? a = 192
: 1536 <= a
? a = 1536
: 912 <= a
? a = 912
: 160 <= a
? a = 160
: 127 <= a
? c &= 5
: 33 <= a
? a = 59
: c &= 5
: 48 > a
? c &= 5
: 65 > a
? a = 59
: 96 > a
? c &= 5
: 112 > a
? a = 96
: 187 > a
? c &= 5
: a = 59
Попытка переписать его в случае if-else даст следующий результат:
if (63 <= a && 77 >= a){
a = 65
} else if (48 <= a && 57 >= a){
a = 48
} else if (c & 1){
if (97 <= a && 122 >= a){
a = 65
} else if (197 == a || 229 == a){
c &= 5
} else if (192 <= a && 687 >= a){
a = 192
} else if (1536 <= a){
a = 1536
} else if (912 <= a){
a = 912
} else if (160 <= a){
a = 160
} else if (127 <= a){
c &= 5
} else if (33 <= a){
a = 59
} else {
c &= 5
}
} else {
if (48 > a){
c &= 5
} else if (65 > a){
a = 59
} else if (96 > a){
c &= 5
} else if (112 > a){
a = 96
} else if (187 > a){
c &= 5
} else {
a = 59
}
}
Пожалуйста, обратите внимание , что в подходе if-else нет возвращаемого значения в настоящее время, тогда как троичный оператор действительно возвращает значение последнего выполненного оператора (это может повлиять на общее значениелогическое выражение в скобках).