js怎么把变量名转换字符串?
js怎么把变量名转换字符串?
前几天被同事问了一个问题,如何把 js 中的变量名 转换成字符串输出,当时是下班期间在忙其他事,便说下去看看,今天突然想起来,记录一下:
应用场景:比如要把我们经常在开发中的调试输出的 console.log 封装一下,因为我们为了在控制台容易找到我们输出的内容,经常打印会采用下面这样的方式:
let name = "tom", age = 18;
console.log('name:', name);
console.log('age:', age);
// 输出 name:tom age:18
那么问题来了,我们有没有什么办法,比如封装某个方法 someFn ,然后传入变量,然后直接输出这样 字符串变量名 + 变量值 的形式呢?
原则上是不行的,因为我们在传参或者使用变量名的时候,其实拿到的都是变量的值。我们都知道对象我们在访问的时候能通过一个key 和 value 来访问对象的属性和属性值,那我们能不能将变量通过类似对象这样的方式来访问呢,带着这个问题我们继续往下看,我们在写代码中经常会用到对象这样的写法:
let name = 'tony';
let someOne = {name,age: 18
}
// someOne: {name: 'tony', age: 18}
我们无法直接将变量当作形参的方式传入函数中,但是我们可以从name 属性的写法中得到启示来进行转化。例如我们写一个 Log 方法,方便调试使用:
const Log = (data = {}) => {if(data) {const key = Object.keys(data)[0];const value = Object.values(data)[0];console.log(key, value)}
}
在调用的时候需将变量转化成对象即可:
let name = 'tony',age = 18, hobby = { sport: 'baseketball' , music: 'pop' };
Log({name}); // name tony
Log({age}); // age 18
Log({hobby}); // hobby {sport: 'baseketball', music: 'pop'}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
