javascript null比较不同的chrome和firefox

mle*_*s54 0 javascript session-storage

我有以下代码:

var a=sessionStorage.getItem("Token");  
alert(a==null);
Run Code Online (Sandbox Code Playgroud)

返回的值是null(如果我alert(a)显示null).问题是alert(a==null)firefox上的显示为TRUE,safari和chrome上的显示为FALSE.WTH?我尝试a===null过同样的结果以及!a.

我做错了什么或者我不知道什么?

谢谢你的帮助.

nnn*_*nnn 7

你在评论中说:"我设置令牌 sessionStorage.setItem("Token",null); "

我认为问题是你应该使用会话存储来存储字符串.传递nullsetItem()它时,将其转换为字符串"null".然后当你检索它时,getItem()你得到这个字符串"null",当然不等于实际null值.

你可以在这里看到这种行为:http://jsfiddle.net/CWVww/1/

如果要删除以前设置的项目,请执行以下操作:

sessionStorage.removeItem("Token");
Run Code Online (Sandbox Code Playgroud)

... 然后呼叫.getItem("Token")将返回null.

我不知道为什么Firefox表现不同.从会话存储MDN页面:"请记住,在存储之前,您在此页面中描述的任何存储中存储的所有内容都将使用其.toString方法转换为字符串."