在javascript中将变量名转换为字符串

在javascript中将变量名转换为字符串,javascript,string,variables,Javascript,String,Variables,需要编写将变量名转换为字符串的someFunction() 像 应该是这样的 alert ("value of" +somefuntion(abc) +"is"+ abc +"and value of" +somefuntion(def)+" is"+def ); 我已经寻找并尝试了一些解决方案 idk这个链接有什么帮助,因为我知道你会说它是重复的,但我试过了,它不起作用 是的,你可以这样做: alert ("value of abc is 123 and value of def is 45

需要编写将变量名转换为字符串的
someFunction()

应该是这样的

alert ("value of" +somefuntion(abc) +"is"+ abc +"and value of" +somefuntion(def)+" is"+def );
我已经寻找并尝试了一些解决方案 idk这个链接有什么帮助,因为我知道你会说它是重复的,但我试过了,它不起作用

是的,你可以这样做:

alert ("value of abc is 123 and value of def is 456")

一个简洁的方法是:

将对象设置为:

function getVariableName(v) {
    for (var key in window) {
        if (window[key] === v)
            return key;
    }
}
var abc = '123';
var def = '456'
alert ("value of " + getVariableName(abc) +" is "+ abc +" and value of " + getVariableName(def) + " is " + def);
然后,当您想要访问它们时,您可以执行以下操作:

const data = {
    abc: {
        key: 'abc',
        value: '123',
    },
    def: {
        key: 'def',
        value: '456',
    }
}

使用下面的代码

const abc='123';
常数def='456';
const varToString=varObj=>Object.keys(varObj)[0]

警报(“+varToString({def})+”的值为“+def+”,“+varToString({abc})+”的值为“+abc”)字符串文字?使用对象。我不认为你能用文字变量做到这一点。尝试
var data={abc:'123','def':'456'};var s='';对于(数据中的var k){s+='的'+k+'值是'+data[k];}
使用普通变量是不可能的。根据您的用例,您可以使用其他任何东西。我发现答案非常有用。1。您迭代了window=中的所有属性,结果非常糟糕。2.
let
而您的代码不起作用。谢谢@Red,是的,这是一个奇怪的要求:)这对我来说也是一个奇怪的要求。谢谢你的提问和回答是的,我知道我们可以这样做,但我们的要求是不改变变量
const data = {
    abc: {
        key: 'abc',
        value: '123',
    },
    def: {
        key: 'def',
        value: '456',
    }
}
alert ("value of" +data.abc.key +"is"+ data.abc.value  +"and value of" +data.def.key+" is"+data.def.value );
const abc = {key: 'abc', value: '123'};
const def = {key: 'def', value: '456'};

alert ("value of" +abc.key +"is"+ abc.value  +"and value of" +def.key+" is"+def.value );