JS中小技巧

  1. 正则表达式的用法 str.replace(/([A-Z])/g,"_$1")

此用法可以将驼峰转为下划线,即 ‘callType’ => call_Type

// 驼峰转下划线-by 饼干 2021-5-8 13:14:49
export function camelCase2Undeline(str){
  return str.replace(/([A-Z])/g,"_$1").toLowerCase();
}

解释:$1 :正则捕获的第一组元素,就是第一个括号括起来的($0 是第零组,捕获的是完全匹配的结果)
在此例子中,匹配的是第一个符合条件的大写字母 T 结果是将 T => _T
就是说 ([A-Z]) 这个正则 捕获到的第一个字符, $1 就引用什么字符
整个正则 就是 把 每一个大写字母前面添加下划线

  1. this.$set(obj, key, value) 的使用

遇见this.$set() 特别记录一下 由于受JavaScript的限制,vue.js不能监听对象属性的添加和删除,因为在vue组件初始化的过程中,会调用getter和setter方法,所以该属性必须是存在在data中,视图层才会响应该数据的变化

使用$this.set() 可以给对象添加属性,并且视图层会立即响应此数据,与Object.assign(target, sources)方法有同样效果
在Object.assign(target, sources)中只能对一层级的数据进行深拷贝,二层及的数据就是公用地址,无法深拷贝
同理,concat方法与slice也存在这样的情况,他们都不是真正的深拷贝,使用时需要注意

如果想哟啊深拷贝数据,可以使用

  1. 递归方式复制所有层级属性
  2. JSON.parse(JSON.stringify(data))
  3. ES6 扩展运算符
  4. jQuery.extend()
    具体使用方法可以看这里
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值