失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > js怎么把变量名转换字符串?

js怎么把变量名转换字符串?

时间:2023-06-10 20:02:39

相关推荐

js怎么把变量名转换字符串?

js怎么把变量名转换字符串?

前几天被同事问了一个问题,如何把js中的变量名转换成字符串输出,当时是下班期间在忙其他事,便说下去看看,今天突然想起来,记录一下:

应用场景:比如要把我们经常在开发中的调试输出的console.log封装一下,因为我们为了在控制台容易找到我们输出的内容,经常打印会采用下面这样的方式:

let name = "tom", age = 18;console.log('name:', name);console.log('age:', age);// 输出 name:tom age:18

那么问题来了,我们有没有什么办法,比如封装某个方法someFn,然后传入变量,然后直接输出这样字符串变量名 + 变量值的形式呢?

原则上是不行的,因为我们在传参或者使用变量名的时候,其实拿到的都是变量的值。我们都知道对象我们在访问的时候能通过一个keyvalue来访问对象的属性和属性值,那我们能不能将变量通过类似对象这样的方式来访问呢,带着这个问题我们继续往下看,我们在写代码中经常会用到对象这样的写法:

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 tonyLog({age}); // age 18Log({hobby}); // hobby {sport: 'baseketball', music: 'pop'}

如果觉得《js怎么把变量名转换字符串?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。