如何使用JavaScript创建具有多个变量的变量名?

时间:2018-07-31 02:39:08

标签: javascript

我想使用JavaScript从多个变量和文本中创建创建变量名称["cat","dog"]。对于此代码,我想提醒a_test_3_check

我尝试使用此代码,但没有用。我该怎么办?

test

当我测试代码时,我总是会提醒<script> var a_test_3_check = "test"; var x = "test"; var y = "check"; var z = 'a_'+x+ '_3_' +y; alert(z); </script> ,我该怎么办?

谢谢你的每一个问题。

3 个答案:

答案 0 :(得分:0)

如果尝试使用internal-id,那么您会得到想要的东西。

eval()

但是,您不应该使用var a_test_3_check = "test"; var x = "test"; var y = "check"; var z = 'a_'+x+ '_3_' +y; alert(eval(z)); 原因不是获取变量变量的正确方法,不过请尝试使用对象结构。

eval()

答案 1 :(得分:0)

请勿使用eval,这是非常糟糕的做法。但是,要使用变量值作为变量名,请在包含变量的对象之后将变量包装在方括号([])之间,而不要在变量名后写点。例如:

// Instead of writing this
obj.variableName

// Write the following
obj[varContainingName]

如果要执行相同的操作,但对于全局作用域,对于每个节点执行环境,它都是不同的。如果您要为前端编写JavaScript,请使用window作为对象(obj)。对于服务器端JavaScript,我不确定是否可以声明 global 变量,但无论如何这不是一个好习惯。相反,您应该在模块中声明对象变量,如果在其他模块中需要它们,则将其导出。例如:

module1.js

let obj={};
module.exports = obj;

// Or if you need to do some operations before exporting your variable
// Just wrap it in a function
module.exports = (function() {
    // Do your operations here
    return obj;
})();

module2.js

// Import your obj
const objFromModule1 = require('./module1.js');
// And do whatever you want to do with the variable

但是,应用于其他模块导入的变量的更改将仅对当前模块可见,直到您导出具有更改的变量为止。

答案 2 :(得分:-1)

您可以使用eval(),如果此函数的参数表示一个表达式,则eval()将对该表达式求值。如果参数代表一个或多个JavaScript语句,则eval()会评估这些语句

var z = eval('a_'+x+ '_3_' +y);

相关问题