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'}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small_Axe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值