ES6

作用域

ES6 的块级作用域必须有大括号,如果没有大括号,JavaScript 引擎就认为不存在块级作用域。

// 第一种写法,报错
if (true) let x = 1;
// 第二种写法,不报错
if (true) {
  let x = 1;
}
1
2
3
4
5
6

const

  1. const一旦声明变量,就必须立即初始化,且后续不能改变。但只是锁定地址,没有锁定包含的所有元素。
  2. const的作用域与let命令相同:只在声明所在的块级作用域内有效。

交换变量的值

let x = 1;
let y = 1;

[x, y] = [y, x];
1
2
3
4

字符串里的循环

for (let codePoint of 'foo') {
  console.log(codePoint)
}
// "f"
// "o"
// "o"
1
2
3
4
5
6

(常用)判断字符串中是否包含特定元素

let s = 'Hello world!';


s.indexOf('H') // 0
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true

s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
1
2
3
4
5
6
7
8
9
10
11

消除空格

const s = '  abc  ';


s.trim() // "abc"
s.trimStart() // "abc  "
s.trimEnd() // "  abc"
1
2
3
4
5
6