JavaScript ЕСЛИ оператор логический строгий

Я устанавливаю режим в скрипте, передавая "truthy» логическое значение для функции. В функции простойif оператор проверяет, является ли параметрtrue или жеfalse, Иногда я передаю это как строку или bool, который всегда работал, но по какой-то причине это не такт для этого:

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

Например, когда я передаю строку'false' и войтиSetting к консоли, консоль говоритfalse, ноif заявление думает, что этоэто правда.

Я должен добавить это в начало функции для его работы:

if (typeof Setting == 'строка») {Setting = (Setting == "правда"); }

Пример этого в использовании:

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

и другой:

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

Это'так странно, так как ямы делали подобные вещи годами, нотолько начинается сейчас. Может потому что ям используюlocalStorage а также ?.prop

Ответы на вопрос(3)

Ваш ответ на вопрос