开发一个前端功能,获取了一个用户状态后为了方便使用,放进了window.sessionStorage里
类似这样的
window.sessionStorage.setItem('userFlag', true);
警醒点的这时就应该能看出这里要出问题了。
后面我用的时候很自然地使用了下面的写法
userFlag = window.sessionStorage.getItem('userFlag');
......
return userFlag ? value1 : value2;
之后自然是各种和预期不符的莫名其妙。userFlag 打印出来也和预期相符,但判断里就是不如意。
最后发现表达式始终返回value1,这才想起,userFlag莫不是个字符串。
typeof(window.sessionStorage.getItem('userFlag')) 后自然是 string
这个问题困扰了一个下午,了解原因后除了精神松弛了下,更多的是羞愧。不熟悉前端的东西了。