ES6学习网址:http://es6.ruanyifeng.com/#docs/string-methods#String-fromCodePoint
1. 变量
let: 类似于var,只在 let 声明的代码块内有效,不存在变量提升
const: const声明一个只读的常量,常量值不会变。
var:全局范围内都有效,var命令会发生“变量提升”现象,即变量可以在声明之前使用
顶层对象,在浏览器环境指的是 window 对象,在 Node 指的是 global 对象。ES5 之中,顶层对象的属性与全局变量是等价的
浏览器里面,顶层对象是window,但 Node 和 Web Worker 没有window。
浏览器和 Web Worker 里面,self也指向顶层对象,但是 Node 没有self。
Node 里面,顶层对象是global,但其他环境都不支持
2. 变量的解构赋值
例子:
一般写法:
let a = 1;
let b = 2;
let c = 3;
ES6 可以这样写
let [a, b, c] = [1, 2, 3];
可以从数组中提取值,按照对应位置,对变量赋值
这种写法属于 “模式匹配”,只要 等号两边 的模式 相同,左边的变量 就会被 赋予对应的值
let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
let [ , , third] = ["foo", "bar", "baz"];
third // "baz"
let [x, , y] = [1, 2, 3];
x // 1
y // 3
let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
let [x, y, z] = new Set(['a', 'b', 'c']);
x // "a"
3. 字符串的遍历器接口
for (let codePoint of 'foo') {
console.log(codePoint)
}
// "f"
// "o"
// "o"
4. 实例方法:includes(), startsWith(), endsWith()
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
这三个方法都支持第二个参数,表示开始搜索的位置
let s = 'Hello world!';
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
5. 实例方法:repeat()
repeat
方法返回一个新字符串,表示将原字符串重复n
次 ,参数如果是小数,会被取整,不能为负数
6. padStart(),padEnd()
padStart()
用于头部补全,padEnd()
用于尾部补全 trimStart(),trimEnd()
7. trimStart(),trimEnd()
trimStart()
消除字符串头部的空格,trimEnd()
消除尾部的空格
8. 字符串的正则方法
字符串对象共有 4 个方法,可以使用正则表达式:match()
、replace()
、search()
和split()