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