2016-05-10 32 views
0

Ich habe einen JavaScript-Code alsuglify minification von wenn statment Mismatch

if(msg.Url!==undefined && (msg.Url!==null || msg.Url!=='')) 

wenn ich Uglify verwenden die gleiche minify, wandelt es zu

void 0 === msg.Url || null === msg.Url && "" === msg.Url 

ist es nicht falsch Platzierung von && und ||

+0

Hinweis es geändert '==' auf '' === als auch, so es eine Art ist die ganze Sache umgekehrt!. Was noch Sinn machen könnte, je nachdem wie es dann angewendet wurde. Was ist mit dem Schlüsselwort "if" passiert? Auch dieser Teil: '(msg.Url! == null || msg.Url! == '')' Ihrer ursprünglichen Bedingung wird immer 'wahr' sein. – nnnnnn

+0

Der minimierte Code wird immer 'false' zurückgeben, wenn 'msg.Url'' null' ist wo der normale Code 'true' zurückgibt –

+0

Ja. Denn 'null === msg.Url &&" "=== msg.Url" kann niemals 'true' sein, genau wie das Original' (msg.Url! == null || msg.Url! == '') 'kann niemals' falsch' sein. Ihr Quellcode hatte also zunächst ein logisches Problem. Aber wieder einmal, ob der Minification-Prozess falsch war, hängt davon ab, wie die neue Version tatsächlich angewendet wurde. – nnnnnn

Antwort

0

ich denke, nach der Verkleinerung der js könnte die Bedingung wie folgt sein:

void 0!==msg.Url&&(null!==msg.Url||""!==msg.Url); 

mit, wenn es sein würde:

if(void 0!==msg.Url&&(null!==msg.Url||""!==msg.Url))