Javascript布尔逻辑错误

时间:2018-02-02 21:47:27

标签: javascript boolean

我的代码:

var old = localStorage.getItem('GotoBeginning');
console.log("old is "+ old);
if (old===true) {
  console.log("Returning true");
  $("#gobeg").prop('checked', true);
  return true;
} else {
  console.log("Returning false");
  $("#gobeg").prop('checked', false);
  return false;
}

GotoBeginning的localStorage中的值为true。 我的console.log显示:

old is true
Returning false

我期待以下输出:

old is true
Returning true

1 个答案:

答案 0 :(得分:2)

浏览器中的存储api仅存储字符串。这应该有效:

if (old === 'true') {
//          ^    ^

} else {

}

正如IrkenInvader的评论中所提到的,您可以像这样提取正确的类型:

var old = JSON.parse(localStorage.getItem('GotoBeginning'))
// now old will be a proper boolean so this will work
if (old) {

} else {

}