在localStorage存入里面的数据是字符串,如果你存入了一个值是Boolean类型的,
那你你取出来就是一个字符串 'true' 或者 'false'
假设取出来的值是 'true'
在你进行if(){}判断的时候,
成立的条件是 xxx== 'true'
如果你这样写 xxx == true 是不成立的,是不会执行里面的语句的
有人说:
因为localStorage存入的是字符串,那么你取出来的时候,也是字符串;
所以成立的条件是 xxx== 'true'
那么:我想问的是
true=='true' 这个等式成立吗;
知悉想一想;可以先不着急回答这个问题;
<script> let flag = true; localStorage.setItem('keyname', flag) let local_cont = localStorage.getItem("keyname"); console.log(typeof local_cont); //输出string; 返回来的类型是字符串'true' // 这样才是正确的(能够进入if里面的鱼护) if (local_cont == 'true') { console.log('成立的1 ') } // 这样是不会执行的 if (local_cont == true) { console.log('不成立的2') } // 这样也是不会执行的 if (local_cont === true) { console.log('不成立的了3') } // 不成的(布尔类型的true 不等于 字符串‘true’) if (true == 'true') { console.log('不成立哈 ') } </script>
所以在我们将布尔值 存入localStorage的时候;
我么需要需要注意的是
成立的条件是 xxx=='true' 或者是 xxx='false'
千万不可以写成 xxx==true 或者是 xxx=false 因为这个等式不不成立的