localStorage警告未定义,但如果undefined为false

Dam*_*ing 3 javascript local-storage

不能完全理解这个的推理.在下面的代码中localStorage,项目被警告为未定义,但如果我使用if(x==undefined)语法则不起作用.有人可以解释是什么问题.谢谢.

alert(localStorage["x"]);

if(localStorage["x"]=="undefined"){alert("y");}
Run Code Online (Sandbox Code Playgroud)

顶行警告未定义

底线不会警告Ÿ我.

Guf*_*ffa 5

它不包含字符串"undefined",它包含类型的值undefined:

if (localStorage["x"] == undefined) { alert("y"); }
Run Code Online (Sandbox Code Playgroud)

该值undefined可以在旧浏览器中更改,因此良好的做法是检查类型:

if (typeof localStorage["x"] == 'undefined') { alert("y"); }
Run Code Online (Sandbox Code Playgroud)