微信餐饮微网站建设,wordpress图形验证码,wordpress自学网,重庆市建设工程信息网资质系统ES6新增扩展字符串的扩展判断字符串是否包含在另一个字符中字符串补全字符串重复消除字符串空格replaceAll()替换全部字符串at字符串匹配输出数值的扩展数值分隔符检测数值是否有限检测是否为NaNNumber.parseInt()、Number.parseFloat()isInteger()判断是否为整数Math.sign()判…
ES6新增扩展字符串的扩展判断字符串是否包含在另一个字符中字符串补全字符串重复消除字符串空格replaceAll()替换全部字符串at字符串匹配输出数值的扩展数值分隔符检测数值是否有限检测是否为NaNNumber.parseInt()、Number.parseFloat()isInteger()判断是否为整数Math.sign()判断是正、负、零非数值会先转换数值Math.hypot()方法返回所有参数的平方和和平方根BigInt数据类型-大整数函数的扩展函数作用域rest参数...剩余运算符箭头函数箭头函数this指向数组的扩展字符串的扩展
判断字符串是否包含在另一个字符中
let s h
s.startsWith(hello) // 是否在头部
s.endWith(hello) // 是否在尾部
s.includes(hello) // 字符串中是否存在字符串补全
let b how
b.padStart(5,a) // 不足5个字符在头部补缺少的a
.padEnd(5,a) // 尾部补全
.padStart(5) // 省略第二个参数用空格代替字符串重复
let a hello
a.repeat(3) // hellohellohello 重复三次
w.repeat(3) // www 重复三次
w.repeat(3.5) // 取整重复三次消除字符串空格
let s abc
s.trim() // 消除首尾空格
s.trimStart() // 消除首部空格
s.trimEnd() // 消除尾部空格replaceAll()替换全部字符串
let s hello
s.replaceAll(l,o) // heoooat字符串匹配输出
// 整数头部 复数尾部
hello.at(2) // l 从头部第0位开始初始下标0
hello.at(-1) // 从尾部第1位开始初始下标1数值的扩展
数值分隔符
允许给较长的数值添加分隔符分割不没有间隔位数限制不影响原值不能再特殊符号前后。
let num 1_00_000_000;检测数值是否有限
有限true
无限false
Numbet.isFinite(10) // true
Numbet.isFinite(NaN) // false检测是否为NaN
是true
否false
Number.isNaN(NaN) // true
Number.isNaN(10) // falseNumber.parseInt()、Number.parseFloat()
将es5的全局方法parseInt()、parseFloat()改为Number.xxx目的是减少全局方法使语言模块化。
parseInt(12.55); // 12
Number.parseInt(12.55); // 12parseFloat(12.55); // 12.55
Number.parseFloat(12.55); // 12.55isInteger()判断是否为整数
注意如果数值位数太长可能会误判IEEE754标准53个二进制位后的数值会被丢弃
Number.isInteger(15) // true
Number.isInteger(1.5) // false
Number.isInteger(false) // false
Number.isInteger(3.0000000000000002) // trueMath.sign()判断是正、负、零非数值会先转换数值
Math.sign(5) // 1 整数
Math.sign(5) // 1
Math.sign(-5) // -1 负数
Math.sign(0) // 0
Math.sign(-0) // -0
Math.sign(true) // 1
Math.sign(false) // -1
// 其它 NaNMath.hypot()方法返回所有参数的平方和和平方根
Math.hypot(3,4); // 5BigInt数据类型-大整数
大整数语法(后缀n)数据n
BigInt大整数可以保持数值精度
let a 2172141653n // 大整数
let b 15346349309n // 大整数
console.log(a*b); // 33334444555566667777n // 可以保持精度普通数值与大整数不相等
15n 15 // falseBigInt继承Object对象的两个实例方法
BigInt.prototype.toString()BigInt.prototype.valueOf()
BigInt继承了Number对象的一个实例方法
BigInt.prototype.toLocaleString()
提供了三个静态方法
BigInt.asUintN(width, BigInt)BigInt.asIntN(width, BigInt)BigInt.parseInt(string[, radix])
BigInt转换规则
Boolean、Number、String三个方法。
转换后后缀n会消失
Boolean(0n) // false
Number(2n) // 2
String(2n) // 2数学运算和number类型基本一致除法运算 / 会舍去小数部分返回一个整数 函数的扩展
函数作用域
函数进行生命初始化时参数部分会形成一个单独的作用域等初始化结束作用域消失该作用域在不设置参数默认值时不会出现。
var x 1
// 传入参数 x 2 , y x , y 2
function f(x,y x){console.log(y);}
f(2) // 2rest参数…剩余运算符
function fn(...val){console.log(val) // [1,2,3]
}
fn(1,2,3)剩余运算符只能放到最后一位
箭头函数
// 一行简写
let b2 num num * 2
// 等同于
let b2 (num) {return num * 2}
console.log(b2(10)); // 20一行默认返回右侧的结果大括号为代码块如果箭头函数不是一行则需要大括号包裹。
无返回值
let b2 num void num * 2
console.log(b2(10)); // undefined参数部分可以解构赋值。
简化回调函数
// 普通函数
let fil [1,2,3].filter(function(x){return x 2
})
console.log(fil); // [2]// 箭头函数
let fil2 [1,2,3].filter(el el 2 )
console.log(fil2); // [2]箭头函数this指向
箭头函数没有自己的this而是引用外层的this。下面是 Babel 转箭头函数产生的 ES5 代码就能清楚地说明this的指向。
// ES6
function foo() {setTimeout(() {console.log(id:, this.id);}, 100);
}// ES5
function foo() {var _this this;setTimeout(function () {console.log(id:, _this.id);}, 100);
} 箭头函数详解请看文章尾部链接 数组的扩展
Array.from() 类数组转数组
Array.fo()数值转数组
find()返回符合条件的那一项
findIndex()返回符合条件的那一项的索引
findLast()从尾部检查返回符合条件的那一项
fill()以给定参数填充数组第二个参数和第三个参数分别为填充的开始位置和结束位置的前一位从0号位开始
entries()键值对遍历
keys()键名遍历
values()值遍历
includes()判断数组中是否存在对应的值返回true和false
flat()拉平数组默认拉平一层参数为拉平几层Infinity深度拉平不管多少层
flatMap()拉平并用map函数迭代
at()参数为数组索引整数从头0开始复数从尾-1开始
group()可以将数组分组返回一个对象
let gr [1,2,3,4,5]
let g gr.group(el el 3 ? greater : less)
console.log(g); // { greater: [4,5], less: [1,2,3] }groupToMap()使用map对group迭代。
数组空位数组空位指数组某一个位置没有任何值undefined是有值的如果没有值那么数组空位会返回empty
Array(3); // [empty x 3]也就是[,,,]stor()排序
let arr [2,3,6,4,5,1]
// 升序
console.log(arr.sort((a,b) a - b)); // [1,2,3,4,5,6]
// 降序
console.log(arr.sort((a,b) b - a)); // [6,5,4,3,2,1]let arr2 [{id:1,name:名称1},{id:3,name:名称3},{id:2,name:名称2},{id:6,name:名称6},{id:4,name:名称4},{id:5,name:名称5}]let so arr2.sort((a,b){ return a.id - b.id });console.log(so);
// [{id: 1, name: 名称1},{id: 2, name: 名称2},{id: 3, name: 名称3},{id: 4, name: 名称4},{id: 5, name: 名称5},{id: 6, name: 名称6}]箭头函数的详细解释箭头函数详解
数组的扩展详细解读数组的扩展和新增方法
对象的扩展详细解读对象定义-解构-枚举属性遍历以及对象内函数
字符串方法详细解读 字符串方法