用Javascript初始化localStorage变量;在函数中不起作用

Initializing localStorage variables with Javascript doesn't work when in a function

本文关键字:函数 不起作用 变量 Javascript 初始化 localStorage      更新时间:2023-09-26

好的,所以我使用以下if语句来预设我正在制作的应用程序的某些变量:

if(localStorage.s1 == undefined) {
    localStorage.s1= 50
}
if(localStorage.s2 == undefined) {
    localStorage.s2= 100
}

这很好。大约有12个这样的预设,所以我使用以下函数重新考虑了它:

function setterfunc(targetedelement, presetting) {
    if(localStorage.targetedelement == undefined) {
        localStorage.targetedelement = presetting;
    }
}   

但当我称之为时

setterfunc(foobar, 342)

谷歌Chrome控制台只是告诉我:

Uncaught ReferenceError: foobar is not defined 

有什么帮助吗?重复if语句的冗长方式非常有效。

使用括号表示法:

function setterfunc(targetedelement, presetting) {
    if(localStorage[targetedelement] == undefined) {
        localStorage[targetedelement] = presetting;
    }
}
setterfunc('foobar', 342)

或者CCD_ 1和CCD_

function setterfunc(targetedelement, presetting) {
    if(localStorage.getItem(targetedelement) == undefined) {
        localStorage.setItem(targetedelement) = presetting;
    }
}   
setterfunc('foobar', 342)

旁注:注意localStorage只存储字符串。因此,如果你想处理数字,你最好解析你从本地存储中读取的内容。

错误的原因是字符串foobar需要被引用,否则JS正在寻找这样名称的变量:

slidersetter('foobar', 342);

但您的函数名为setterfunc,而不是slidersetter