JavaScript IF-Anweisung boolean strict
Ich setze einen Modus in einem Skript, indem ich einen "wahrheitsgemäßen" Booleschen Wert an eine Funktion übergebe. In der Funktion einfachif
Anweisung prüft, ob der Parameter isttrue
oderfalse
. Ich gebe es manchmal als String oder als Bool weiter, was immer funktioniert hat, aber aus irgendeinem Grund ist es nicht dafür:
setMode: function(Setting) {
if (Setting) {
console.log('Enabling mode');
} else {
console.log('Disabling mode');
}
}
Zum Beispiel, wenn ich eine Zeichenfolge übergebe'false'
und logSetting
zu trösten, sagt die Konsolefalse
, noch dieif
Aussage denkt, es ist wahr.
Ich muss dies zum Start der Funktion hinzufügen, damit es funktioniert:
if (typeof Setting == 'string') {Setting = (Setting == "true"); }
Ein Beispiel dafür im Einsatz:
var inverted = $('INPUT[name="Mode"]').prop('checked');
app.setMode(inverted);
und ein anderer:
var mode = localStorage.getItem('Mode');
this.setMode(mode);
Es ist so bizarr, seit ich so etwas jahrelang gemacht habe, aber es fängt erst jetzt an. Vielleicht, weil ich benutzelocalStorage
und.prop
?