Javascript sessionstorage工作但返回;“未定义”;在控制台中。为什么?
我只是构建了一个jquery插件来处理一些数据存储。 当我尝试从存储器中读取时,结果是读取项数据。现在还好 当我加上Javascript sessionstorage工作但返回;“未定义”;在控制台中。为什么?,javascript,jquery,session-storage,Javascript,Jquery,Session Storage,我只是构建了一个jquery插件来处理一些数据存储。 当我尝试从存储器中读取时,结果是读取项数据。现在还好 当我加上 sessionStorage.setItem('test','some data'); 或删除 sessionStorage.removeItem('test'); 一个项目,我总是在控制台中获得未定义的。log 但它做了我该做的 我怎样才能摆脱那些未定义的想法 我尝试的是 var result = sessionStorage.setItem('test','some da
sessionStorage.setItem('test','some data');
或删除
sessionStorage.removeItem('test');
一个项目,我总是在控制台中获得未定义的。log
但它做了我该做的
我怎样才能摆脱那些未定义的想法
我尝试的是
var result = sessionStorage.setItem('test','some data');
本以为这会将其打印到var,但不会^^
我的代码:
(function ($) {
$.storage = {
add: function(name,value){
if(typeof value === 'object' )
{
/** convert object to json **/
value = JSON.stringify(value);
}
/** add to storage **/
sessionStorage.setItem(name,value);
},
read: function(name){
/** read from storage **/
var item = sessionStorage.getItem(name);
try {
item = $.parseJSON(item);
}catch(e){}
return item;
},
remove: function(name){
/** delete from storage **/
sessionStorage.removeItem(name);
},
clear: function(){
/** clear storage **/
sessionStorage.clear();
}
}
})(jQuery);
解决方案
我试图在控制台中添加存储。。。当我在脚本中使用它时,它没有返回任何内容!抱歉设置项
和删除项
不返回任何值。因此,您将得到未定义的。另请注意removietem
仅接受一个参数
,这里是上述方法的函数符号
setItem(键:字符串,数据:字符串):void
此公共方法通过指定的键存储数据。请注意,如果密钥已经存储,它将覆盖它。另一个要考虑的问题是,如果我们存储密钥,并通过SeStestSimult.KEY(0),我们得到密钥,然后存储另一个密钥/数据,最后再次存储第一个密钥,SeStestSimple。密钥(0)将返回所存储的第二个密钥/数据,而不是第一个密钥/数据。
removietem(键:字符串):void
此公共方法只是从存储器中删除密钥和相关数据
setItem
和removietem
不返回任何值。因此,您将得到未定义的。另请注意removietem
仅接受一个参数
,这里是上述方法的函数符号
setItem(键:字符串,数据:字符串):void
此公共方法通过指定的键存储数据。请注意,如果密钥已经存储,它将覆盖它。另一个要考虑的问题是,如果我们存储密钥,并通过SeStestSimult.KEY(0),我们得到密钥,然后存储另一个密钥/数据,最后再次存储第一个密钥,SeStestSimple。密钥(0)将返回所存储的第二个密钥/数据,而不是第一个密钥/数据。
removietem(键:字符串):void
此公共方法只是从存储器中删除密钥和相关数据
不返回任何内容
sessionStorage.setItem('test','some data');
将值赋给“测试”
,因此右侧没有任何值。
你想要的是
sessionStorage.setItem('test','some data');
var result = sessionStorage.getItem('test'); //<- here the right hand side is 'some data'
sessionStorage.setItem('test','some data');
var result=sessionStorage.getItem('test')//
不返回任何内容
sessionStorage.setItem('test','some data');
将值赋给“测试”
,因此右侧没有任何值。
你想要的是
sessionStorage.setItem('test','some data');
var result = sessionStorage.getItem('test'); //<- here the right hand side is 'some data'
sessionStorage.setItem('test','some data');
var result=sessionStorage.getItem('test')//remove的参数是复制粘贴打字错误。很抱歉但是为什么我在调用这些函数时会在控制台中得到一个未定义的函数?@Dwza-原因在这个答案的第一句话中描述@昆汀,我什么都不想还。甚至不是一个未定义的。萨帕尔说的话从一开始就很清楚。。。但问题是:我能避免这种情况吗…@Dwza-未定义
什么都不是。你不能得到你想要的。我感觉我不理解你或者你不理解我。。。我知道没有定义没什么。但不管我是否调用console.log(),这都是我的事情。那么我为什么要调用空的console.log呢?没有理由!这就是为什么我要避免返回未定义。如果我写一个jquery函数,它也不会返回none!remove的参数是复制粘贴打字错误。很抱歉但是为什么我在调用这些函数时会在控制台中得到一个未定义的函数?@Dwza-原因在这个答案的第一句话中描述@昆汀,我什么都不想还。甚至不是一个未定义的。萨帕尔说的话从一开始就很清楚。。。但问题是:我能避免这种情况吗…@Dwza-未定义
什么都不是。你不能得到你想要的。我感觉我不理解你或者你不理解我。。。我知道没有定义没什么。但不管我是否调用console.log(),这都是我的事情。那么我为什么要调用空的console.log呢?没有理由!这就是为什么我要避免返回未定义。如果我写一个jquery函数,它也不会返回none!“我怎样才能摆脱那些未定义的想法?”-你为什么要这样做?因为这很可能是错误的。。。当我编程、运行我的应用程序时,undefined出现了好几次…@Dwza,我已经用你的代码创建了一个fiddle。你能用小提琴再现你的问题吗。另请注意,IE8+浏览器支持sessionStorage
。请参见“如何摆脱未定义的任何想法?”-为什么要这样做?因为它可能是错误的。。。当我编程、运行我的应用程序时,undefined出现了好几次…@Dwza,我已经用你的代码创建了一个fiddle。你能用小提琴再现你的问题吗。另请注意,sessionStorage
在IE8+浏览器中受支持。请注意,它不是无效语句,只是setItem
函数不返回任何内容。它不是无效语句,只是setItem
函数不返回任何内容。