无论localStorage if语句如何,函数都会执行

时间:2014-08-18 21:22:56

标签: javascript html function if-statement local-storage

我正在尝试执行JavaScript函数,具体取决于localStorage键的值。这似乎很容易,但我没有到达任何地方。这就是我目前所拥有的 -

        <script>
    window.onload = function ()
    {
        setInterval(function()
        {
            var one = localStorage.getItem('one');
            if (one !== true)
            {
                var elem = document.getElementById("one");
                elem.className = "hide";
            } 
            else if (one !== false) 
            {
                var elem = document.getElementById("one");
                elem.className = "show";
            }
            else {
                var elem = document.getElementById("one");
                elem.className = "show";
            }
        }, 50);
    }
</script>

这应该做的是每隔50ms检查一次localStorage中的密钥“one”。如果是,则执行if语句下定义的函数。如果为false,则执行在else或else语句下定义的其他函数。

不幸的是,无论是否在localStorage中都有条目,它总是执行第一个函数(隐藏对象)。我不确定为什么。

任何建议都将不胜感激。

感谢。

编辑 - 我在其他帖子中找不到此信息,主要是因为我的问题与评论和答案中提到的要点有关。如果字符串"true"不在localStorage中开始,为什么函数仍在执行?

1 个答案:

答案 0 :(得分:1)

存储在localStorage中的任何内容都严格来存储 string 键/值对。这意味着您实际存储的是字符串:"true"而不是布尔值true