我想查找变量并更改其值,输入是一个字符串。
实施例。如果输入字符串是" variableSalary",我想查找是否有任何使用相同名称定义的变量,如果存在,则使用其他字符串输入更改其值
答案 0 :(得分:1)
在javascript中,所有全局变量都是全局对象的属性 您可以通过两种方式访问属性:object.property或object [" property"] 在大多数情况下,你应该选择第一个。但方括号表示法有点表示法没有的一种行为:它允许您搜索以前不知道名称或将动态生成的属性。这就是你想要的。
你可以试试这个:
function isVar(string) {
if (typeof this[string] !== 'undefined') {
return true;
}
else {
return false;
}
}
function changeVar(string, value, scope) {
var scope = scope || this;
var test = isVar.call(scope, string);
if (test === true) {
scope[string] = value;
return value;
}
else {
return undefined;
}
}
如果要检查全局变量,则无需定义范围,但如果要检查另一个对象,则必须对其进行定义。 请注意,只有当变量具有值时才会检查变量是否已声明。因此,如果您声明了一个变量但没有定义它(var a;),则isVar将返回false。
答案 1 :(得分:0)
您可以在此示例中执行此操作:How to find JavaScript variable by its name
var a = "test";
alert(window["a"]);
window["a"] = "changed it";
alert(window["a"]);