ES6笔记

2020-01-15  本文已影响0人  YOLO_2a2d

let命令:

块级作用域

function f1() {
  let n = 5;
  if (true) {
    let n = 10;
  }
  console.log(n); // 5
}

const命令:

变量结构赋值:

数组的解构赋值:

let [a, b, c] = [1, 2, 3];
let [x, y, z] = new Set(['a', 'b', 'c']);
x // "a"
let [foo = true] = [];
foo // true

对象的解构赋值:

let { bar, foo } = { foo: 'aaa', bar: 'bbb' };
foo // "aaa"
bar // "bbb"

let { baz } = { foo: 'aaa', bar: 'bbb' };
baz // undefined
var {x = 3} = {x: undefined};
x // 3

var {x = 3} = {x: null};
x // null

字符串的解构赋值:

const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"

数值和布尔值的解析赋值:

函数参数的解构赋值

function add([x, y]){
 return x + y;
}

add([1, 2]); // 3

用途:

let x = 1;
let y = 2;

[x, y] = [y, x];
// 返回一个数组

function example() {
  return [1, 2, 3];
}
let [a, b, c] = example();


// 参数是一组有次序的值
function f([x, y, z]) { ... }
f([1, 2, 3]);

// 参数是一组无次序的值
function f({x, y, z}) { ... }
f({z: 3, y: 2, x: 1});
let jsonData = {
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let { id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]
const map = new Map();
map.set('first', 'hello');
map.set('second', 'world');

for (let [key, value] of map) {
  console.log(key + " is " + value);
}
// first is hello
// second is world

字符串的新增方法

  1. String.fromCodePoint()
    用于从 Unicode 码点返回对应字符
  2. String.raw()
    该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。
String.raw`Hi\n${2+3}!`
// 实际返回 "Hi\\n5!",显示的是转义后的结果 "Hi\n5!"
  1. codePointAt()
    能够正确处理 4 个字节储存的字符,返回一个字符的码点。
let s = '𠮷a';

s.codePointAt(0) // 134071
s.codePointAt(1) // 57271

s.codePointAt(2) // 97
  1. normalize()
    用来将字符的不同表示方法统一为同样的形式,这称为 Unicode 正规化。

  2. includes(),startsWith(),endsWith()

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

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

  2. padStart(),padEnd()
    如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

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

'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'
  1. trimStart(),trimEnd()
    ES2019 对字符串实例新增了trimStart()trimEnd()这两个方法。它们的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串

  2. matchAll()
    matchAll()方法返回一个正则表达式在当前字符串的所有匹配

参考链接:http://es6.ruanyifeng.com/#README

上一篇 下一篇

猜你喜欢

热点阅读