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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage