Javascript 函数总是返回true

Javascript 函数总是返回true,javascript,Javascript,当我重新加载页面时,总是会返回true,即使它以前是false,那又有什么错呢。我怀疑您正在将状态设置为true,然后使用将其持久化到localStorage $(document).ready(function() { var state = localStorage.hasOwnProperty('sidebarState') ? localStorage.getItem('sidebarState') : false; function setState() { if(stat

当我重新加载页面时,总是会返回true,即使它以前是false,那又有什么错呢。

我怀疑您正在将状态设置为true,然后使用将其持久化到localStorage

$(document).ready(function() {

var state = localStorage.hasOwnProperty('sidebarState') ? localStorage.getItem('sidebarState') : false;

function setState() {
    if(state) {
        $('#sidebar').css('transform', 'translate(0,0)');
        state = false;
    }
    else {
        $('#sidebar').css('transform', 'translate(-100%,0)');
        state = true;
    }
    localStorage.setItem('sidebarState',state);
}

$('#sidebar_button').click(setState);

setState();

});

刷新页面时,状态从localStorage读入并计算为true。

localStorage。setItem
包含两个字符串。因此,布尔值false将被强制转换为字符串“false”,该字符串的计算结果将为true

一个解决办法是

localStorage.setItem('sidebarState',state);
因为空字符串的计算结果将为false

来源:

这里的函数根本不返回任何内容。也许您想问为什么
state
变量的值不是您期望的值?刷新时state=true
localStorage.setItem('sidebarState', state ? state : "");