Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как работотает? 0==objJSON.ST_Supply&&SupplyVolt.setAttribute("fil l",RGB_ERR); (https://javascript.ru/forum/misc/63810-kak-rabototaet-0%3D%3Dobjjson-st_supply-supplyvolt-setattribute-fil-l-rgb_err-%3B.html)

pokk 01.07.2016 05:18

как работотает? 0==objJSON.ST_Supply&&SupplyVolt.setAttribute("fil l",RGB_ERR);
 
В общем прогнал через оптимизатор http://closure-compiler.appspot.com/home
C оптимизацией simple (в описании пишут что убирает пробелы и название переменных сокращает на буквы)

Исходный код:

var  SupplyVolt= document.getElementById("IdSupplyVolt");
SupplyVolt.textContent="Напряжение сети="+objJSON.U_Supply+" В";
if(objJSON.ST_Supply==0){
    SupplyVolt.setAttribute("fill",RGB_STATUS_ERROR_LOW);
}


Он его заменил на
var SupplyVolt=document.getElementById("IdSupplyVolt");
SupplyVolt.textContent="\.....="+objJSON.U_Supply+" \u0412";
0==objJSON.ST_Supply&&SupplyVolt.setAttribute("fill",RGB_STATUS_ERROR_LOW);


Куда оптимизатор условия if подевал и как последняя строчка работает совсем понять не могу. Как изменить исходный код что бы он его не менял.
PS: получаю по json статус напряжения сети и меняю цвет текст если статус равен единице. Оптимизация simple обязательно нужна иначе размер когда сильно большой и он не влезает.

Rise 01.07.2016 07:24

Цитата:

Сообщение от pokk (Сообщение 420946)
Куда оптимизатор условия if подевал

Оптимизировал же...
Цитата:

...it also performs optimizations within expressions and functions, including (включающие в том числе видимо)) renaming local variables and function parameters to shorter names.
Функционально идентичен источнику же...
Цитата:

The output JavaScript is functionally identical to the source JavaScript.
Compilation Levels

Так вам размер поменьше или что...

PS: Оптимизации стандартного режима

pokk 01.07.2016 10:07

Да размер поменьше, и хотелось бы понять как оптимизированный код работает.
Я понял что при таком варианте цвет установится
1&&SupplyVolt.setAttribute("fil l",RGB_ERR);
а при
0&&SupplyVolt.setAttribute("fil l",RGB_ERR);
Нет но как это происходит не понятно.

Rise 01.07.2016 10:44

pokk, Логические операторы


Часовой пояс GMT +3, время: 16:25.