前端随笔~

WeakMap 的语法

WeakMap 与 Map 在 API 上的区别主要是两个,一是没有遍历操作(即没有keys()values()entries()方法),也没有size属性。因为没有办法列出所有键名,某个键名是否存在完全不可预测,跟垃圾回收机制是否运行相关。这一刻可以取到键名,下一刻垃圾回收机制突然运行了,这个键名就没了,为了防止出现不确定性,就统一规定不能取到键名。二是无法清空,即不支持clear方法。因此,WeakMap只有四个方法可用:get()set()has()delete()

String

前导零的添加删除

add :将oValue 的位数用0 补足(在字符串前面)

ES2017

oValue.padStart(35, ‘0’);

ex,

'abc'.padStart(10, '0123456789')
// '0123456abc'

如果省略第二个参数,默认使用空格补全长度。

'x'.padStart(4) // '   x'
'x'.padEnd(4) // 'x   '

delete

removeLeadingZero(str) {

​ return typeof str === ‘string’ ? str.replace(/\b(0+)/gi, ‘’) : str;

​ }

ES2019 对字符串实例新增了trimStart()trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。

const s = '  abc  ';

s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"

除了空格键,这两个方法对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。

浏览器还部署了额外的两个方法,trimLeft()trimStart()的别名,trimRight()trimEnd()的别名。

ES6 模板字符串

浅拷贝:拷贝的是地址

const a=[1,3];

const b=a;

此时是深拷贝,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组。

a b 其中任一的值改变,另一个的值都会改变。

深拷贝:

const a=[1,3];

const b=[];

b[0]=a[0];

b[1]=a[1];

此时是将a 数组的值拷贝到b a 的改变不会导致b 跟着改。

es6 写法:

const a=[2,3,4];

const b=[...a];
//or
 const [...b]=a;
/**
  * @description deep clone data
  */
 cloneFun(params) {
     const type = Array.isArray(params) ? [] : {};
     return jQuery.extend(true, type, params);
 },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值