如何将var值附加到另一个var
var price11 = 100;
var i = 11;
var displayprice;
displayprice= price + 'i'; // should assign 100(value of price11) to displayprice.
有可能吗?
答案 0 :(得分:1)
使用 eval()
(但我不喜欢这种方法,你可以在这里找到原因:Why is using the JavaScript eval function a bad idea?)
var price11 = 100;
var i = 11;
var displayprice;
displayprice = eval('price' + i);
console.log(displayprice);
如果它在全局上下文中,那么从窗口对象
获取它
var price11 = 100;
var i = 11;
var displayprice;
displayprice = window['price' + i];
console.log(displayprice);
更新:更好的方法是使用对象。将对象属性定义为动态变量名称。您可以获取对象property value by Bracket notation.
// defining object
var obj = {
price11: 100;
}
var i = 11;
// retrieve object property
var displayprice = obj['price' + i];
console.log(displayprice);
答案 1 :(得分:0)
- 绝不使用
eval()
。 Object-Oriented JavaScript - Second Edition:eval()
有时会很有用,但如果有其他选项则应该避免使用。大多数情况下有替代品,在大多数情况下,替代品更优雅,更易于编写和维护。 " Eval是邪恶的"是经验丰富的JavaScript程序员经常听到的口头禅。使用eval()
的缺点是:
- 安全性 - JavaScript功能强大,这也意味着它可能会造成损害。如果您不相信传递给eval()
的输入来源,请不要使用它。
- 性能 - 评估速度较慢"生活"代码而不是直接在脚本中使用代码。- 使用单
var
。 Object-Oriented JavaScript - Second Edition:考虑一个"单个var"图案。在函数的最顶部定义函数中所需的所有变量,这样您就可以在一个地方查找变量,并希望防止意外的全局变量。- 使用动态名称的对象属性
var
obj,
i = 11,
displayprice;
obj.price11 = 100;
displayprice = obj['price' + i];
您可以动态获取对象的属性:obj['price' + i] => obj['price11'] => 100