ich den folgenden Code haben (aus Gründen der Diskussion vereinfacht):UglifyJS ändert den Code bahaviour
var a = 1;
var b = [];
if (checkIfAisOne(a)) {
b = ['something']
}
console.log(b);
//['something']
dann gibt es eine Grunt uglify Aufgabe, die diesen Code zu dieser konvertiert:
checkIfAisOne(a) || (b = ['something']), console.log(b);
// []
Da der erste Teil des Ausdrucks wahr ist, wird der zweite Teil (nach ||
) nicht ausgeführt und daher bleibt b
unverändert.
So, Uglified-Code zeigt andere Ausgabe als nicht-Uglified-Code.
Ist das ein bekanntes Problem? Ein Käfer? Wie kann es verhindert werden, gibt es eine Option/Einstellung, um dies zu beheben?
geben Sie bitte eine [MCVE]. diese sollten gleichwertig sein. vielleicht hat das fehlende Semikolon etwas damit zu tun. –
@ DanielA.White Sollte es nicht '&&' anstatt '||' sein? –
Ich würde hier einen ternären Operator erwarten .. – Pogrindis