JavaScript IF instrukcja boolean strict

Ustawiam tryb w skrypcie, przekazując boolean „truey” do funkcji. W funkcji prostyif oświadczenie sprawdza, czy parametr jesttrue lubfalse. Czasami przekazuję go jako ciąg lub bool, który zawsze działał, ale z jakiegoś powodu nie jest to po to:

setMode: function(Setting) {    
    if (Setting) {
        console.log('Enabling mode');
    } else {
        console.log('Disabling mode');
    }
}

Na przykład, gdy przekazuję mu ciąg'false' i zaloguj sięSetting konsoli, mówi konsolafalse, jeszczeif oświadczenie uważa, że ​​to prawda.

Muszę dodać to do początku funkcji, aby działała:

if (typeof Setting == 'string') {Setting = (Setting == "true"); }

Przykład użycia:

var inverted = $('INPUT[name="Mode"]').prop('checked');
app.setMode(inverted);

i kolejny:

var mode = localStorage.getItem('Mode');
this.setMode(mode);

To takie dziwne, ponieważ robię tego typu rzeczy od lat, ale dopiero teraz się zaczyna. Może dlatego, że używamlocalStorage i.prop?

questionAnswers(3)

yourAnswerToTheQuestion