我想使用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>
,我该怎么办?
谢谢你的每一个问题。
答案 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);