ES6基础语法

来源:互联网 发布:手机移动网络开关在哪 编辑:程序博客网 时间:2024/06/13 02:45

1、let

生命一个只在let所在代码块内生效的变量

2、conset

声明一个只读的常量。一旦声明,常量的值就不能改变。

3、变量的解构赋值

let [foo, [[bar], baz]] = [1, [[2], 3]];let [x, y = 'b'] = ['a', undefined];let { foo, bar } = { foo: "aaa", bar: "bbb" };let arr = [1, 2, 3];let {0 : first, [arr.length - 1] : last} = arr;first // 1last // 3const [a, b, c, d, e] = 'hello';[[1, 2], [3, 4]].map(([a, b]) => a + b);// [ 3, 7 ]let {length : len} = 'hello';len // 5for (let [key,value] of map) { }const { SourceMapConsumer, SourceNode } = require("source-map");//模块加载

解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。ES6 的规则是,只要有可能导致解构的歧义,就不得使用圆括号。

4、字符串扩展

codePointAt(0)方法的参数,是字符在字符串中的位置(从0开始),返回一个字符的码点。

String.fromCodePoint()识别32位的UTF-16字符码点

字符串可以被for...of循环遍历

at(0)方法,可以识别 Unicode 编号大于0xFFFF的字符,返回正确的字符

includes():返回布尔值,表示是否找到了参数字符串。startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

let s = 'Hello world!';s.startsWith('world', 6) // trues.endsWith('Hello', 5) // trues.includes('Hello', 6) // false

上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

repeat(0)方法返回一个新字符串,表示将原字符串重复n次。

字符串补全

'x'.padStart(5, 'ab') // 'ababx''x'.padStart(4, 'ab') // 'abax''x'.padEnd(5, 'ab') // 'xabab''x'.padEnd(4, 'ab') // 'xaba'


模板字符串,用反引号(`)标识(变量(${aa})) 可以嵌套使用

``.trim() //去除多余的换行和空格


5、正则扩展

new RegExp(/abc/ig, 'i').flag/\u{20BB7}/u.test(' 
原创粉丝点击