🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、正则构造函数 - 在ES5中,new RegExp(/xyz/,'i') 会报错,因为不允许有第二个参数 - 在ES6中,第二个参数代表修饰符 ``` var regEx = new RegExp(/xyz/i) var regEy= new RegExp(/xyz/,'i') // 等价 var regEz = new RegExp(/xyz/ig,'i') // 会忽略之前的ig,而使用i修饰符 ``` ### 1.1 字符串的正则方法 - 字符串可以使用正则表达式的4个方法: replace(),match(),search(),split() - ES6将这4个方法,在语言内部全部调用RegExp的实例方法。。 1. u修饰符 - 即为Unicode模式 ## 二、Number的扩展 - Number.isFinite() 判断数值是否有限 - Number.isNaN() 判断数值是否是NaN - Number.parseInt() ES6将parseInt,parseFloat移植到了Number对象上 - Number.parseFloat() - Number.isInteger() 判断值是否为整数 ``` // ES5 parseInt(15.12) // 15 parseFloat(123.456$) //123.456 // ES6 Number.parseInt(15.12) //15 # 这样做的目的是,减少全局性方法,使语言逐步模块化 ``` ## 三、Math对象的扩展 - Math.trunc() 去除一个数的小数部分,返回整数部分(对于非数值会先转为数据再计算) - Math.sign() 判断数是正数、负数、还是0 ,有五种返回值: 参数为正数,返回+1,为负数,返-1,为0,返0,为-0返回-0,为其他值返NaN - ES6新增了Math的对数方法 - ES6新增了Math的三角函数方法 - 指数运算 ## 四、数组的扩展 - Array.from() 将类数组对象转为数组对象(类对象:类似数组的对象和可遍历的对象) - arr.copyWithin(target,start,end) :从target位置开始替换,start位置开始读取,end停止读取。会修改原数组。 - find(cb) 查看数组中的值 - findIndex(cb) 查找数组中的索引 - fill(val,start,end) 填充已有数组,如果只有value则全部填充,start为开始填充的搁置,end为结束填充的位置 - entries() 遍历数组键值对 - keys() 遍历键名 - values() 遍历值 - inclues() 数组是否包含给定值(属于ES7),Babel转码器已经支持 ``` [1,3,-1,6].find(n=> n<0) [1,3,-1,6].find((value,index,arr)=>{ return value>0 }) # 遍历 for(let elem of ['a','b'].values()){ console.log(elem) } // a b # inclues方法 [1,2,NaN].includes(NaN) //true # ES5部署一个简易替代includes的方法 const contains=(()=>{ Array.prototype.includes ? (arr,value)=>arr.includes(arr,value) : (arr,value)=> arr.come(el=>el===value) })() ```