Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript创建具有多个var的var名称?_Javascript - Fatal编程技术网

如何使用javascript创建具有多个var的var名称?

如何使用javascript创建具有多个var的var名称?,javascript,Javascript,我想从多个var和文本中创建一个var namea\u test\u 3\u check,使用javascript为该代码创建一个var namea\u test\u check,我想提醒test 我尝试使用此代码,但没有工作。我该怎么办 <script> var a_test_3_check = "test"; var x = "test"; var y = "check"; var z = 'a_'+x+ '_3_' +y; alert(z); </script>

我想从多个var和文本中创建一个var name
a\u test\u 3\u check
,使用javascript为该代码创建一个var name
a\u test\u check,我想提醒
test

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

<script>
var a_test_3_check = "test";

var x = "test";
var y = "check";

var z = 'a_'+x+ '_3_' +y;
alert(z);
</script>

var a_test_3_check=“test”;
var x=“测试”;
var y=“检查”;
var z='a_u'+x+''u3_'+y;
警报(z);
当我测试代码时,我总是发出警报
a\u test\u 3\u check
,我该怎么做

<script>
var a_test_3_check = "test";

var x = "test";
var y = "check";

var z = 'a_'+x+ '_3_' +y;
alert(z);
</script>
谢谢您提出的每一个问题。

如果您尝试使用
eval()
,您将得到您想要的

var a_test_3_check = "test";

var x = "test";
var y = "check";

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

var obj={
x:“测试”,
y:“检查”,
a_测试_3_检查:“测试”
};
变量z='a_u'+obj.x+'u3_'+obj.y;
console.log(obj[z])
您可以使用
eval()
,如果此函数的参数表示表达式,
eval()
对表达式求值。如果参数表示一个或多个JavaScript语句,
eval()
对语句求值


var z=eval('a_'+x+''u3_'+y)

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

// Instead of writing this
obj.variableName

// Write the following
obj[varContainingName]
如果希望执行相同的操作,但对于全局范围,每个节点执行环境的操作都是不同的。如果要为前端编写javascript,请使用
窗口
作为对象(
obj
)。对于服务器端JavaScript,我不确定是否有方法声明全局变量,但无论如何,这不是一个好的实践。相反,您应该在模块中声明对象变量,如果您需要在另一个模块中导出它们。例如:

// Instead of writing this
obj.variableName

// Write the following
obj[varContainingName]
模块1.js

module2.js


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

在有人发布答案之前,请使用以下命令获取我的注释:如果您遇到必须动态构造和计算变量名的情况,你的设计很可能有问题。解释你想要达到的目标,我们可以帮助你想出替代方案。@RobbyCornelissen要进一步说明这一点,你永远没有理由需要这样做。变量的名称不应影响代码的功能。@SpencerWieczorek我们完全同意。然而,已经有两个
eval()
答案了,而且他们的投票率还在上升。不要这样做。不应动态生成变量名。最多,您应该创建一个JavaScript对象,然后根据其键获取值,这是非常好的。阅读。你尝试过我的解决方案吗?向下,查看我的编辑。。我不是在写代码,同时你刚刚投了两次反对票。没有等待我的完整答案:(1)没有人可以投两次反对票2)如果你想让人们在投票前等待你的完整答案,在你有完整答案之前不要发帖子。是的,我完全同意你的意见,先生。对不起,这是我的错:(在完成我的回答之前点击post按钮。还有一件事两次意味着两个人,我的英语不太好:)