>  기사  >  웹 프론트엔드  >  ES6, ES7, ES8에서 일반적으로 사용되는 기능 요약(코드 예제)

ES6, ES7, ES8에서 일반적으로 사용되는 기능 요약(코드 예제)

不言
不言앞으로
2019-02-13 10:03:183182검색

이 글은 ES6, ES7, ES8에서 일반적으로 사용되는 기능(코드 예제)을 요약한 것입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

ES6의 일반적인 새로운 기능

1 let && const

let 命令也用于变量声明,但是作用域为局部
{
    let a = 10;
    var b = 1;        
}
在函数外部可以获取到b,获取不到a,因此例如for循环计数器就适合使用let。

const用于声明一个常量,设定后值不会再改变
const PI = 3.1415;
PI // 3.1415
PI = 3; //TypeError: Assignment to constant variable.
#🎜🎜 #

2. 구조 분해 할당

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 
例如数组:

let [a, b, c] = [1, 2, 3];
//等同于
let a = 1;
let b = 2;
let c = 3;
这真的让代码看起来更优美,有种python赋值的既视感。 

对象的解构赋值:获取对象的多个属性并且使用一条语句将它们赋给多个变量。

var {
  StyleSheet,
  Text,
  View
} = React;

等同于
var StyleSheet = React.StyleSheet;
var Text = React.Text;
var View = React.Text;

3. 화살표 함수

ES6의 새로운 화살표 연산자가 사용됩니다. 함수 작성을 단순화하기 위해 연산자의 왼쪽은 매개변수이고 오른쪽은 특정 작업 및 반환 값입니다.


var sum = (num1, num2) => { return num1 + num2; }
//等同于
var sum = function(num1, num2) {
    return num1 + num2;
};
箭头函数还修复了this的指向,使其永远指向词法作用域:

var obj = {
    birth: 1990,
    getAge: function () {
        var b = this.birth; // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
        return fn();
    }
};
obj.getAge(); // 25

4....Operator

이런 도입은 거의 불가능합니다. 확장 기능을 사용하세요. 이를 통해 배열을 매개변수로 함수에 직접 전달할 수 있습니다:

5. iterable type

컬렉션 유형을 통합하려면 ES6 표준이 도입되었습니다. 새로운 반복 가능 유형인 Array, Map 및 Set은 모두 반복 가능 유형에 속하며 반복 가능 유형이 있는 컬렉션은 새로운 for...of 루프를 통해 탐색할 수 있습니다.

var people = ['Lily', 'Lemon', 'Terry'];
function sayHello(people1,people2,people3){
    console.log(`Hello ${people1},${people2},${people3}`);
}
sayHello(...people);//输出:Hello Lily,Lemon,Terry

6. Class

ES6에서는 Class(클래스) 개념을 도입하여 전통 언어에 가까운 작성 방법을 제공합니다. 개체 템플릿. 클래스는 대부분의 전통적인 언어와 마찬가지로 class 키워드를 통해 정의할 수 있습니다.

var a = ['A', 'B', 'C'];
var s = new Set(['A', 'B', 'C']);
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
for (var x of a) { // 遍历Array
    alert(x);
}
for (var x of s) { // 遍历Set
    alert(x);
}
for (var x of m) { // 遍历Map
    alert(x[0] + '=' + x[1]);
}

Map相关操作如下, Set同理:

var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined

ES7의 새로운 공통 기능

1. Array.prototype.includes

//定义类
class Point {
  constructor(x, y) {
    this.x = x;
    this.y = y;
  }

  toString() {
    return '(' + this.x + ', ' + this.y + ')';
  }
}
# 🎜🎜#2.지수 연산자(지수 연산)

在一个数组或者列表中检查是否存在一个值
let arr = ['react', 'angular', 'vue']

// Correct
if (arr.includes('react')) {
  console.log('Can use React')
}
还能在字符串中使用includes:

let str = 'React Quickly'

// Correct
if (str.toLowerCase().includes('react')) {  // true
  console.log('Found "react"')  
}
除了增强了可读性语义化,实际上给开发者返回布尔值,而不是匹配的位置。

includes也可以在NaN(非数字)使用。最后 ,includes第二可选参数fromIndex,这对于优化是有好处的,因为它允许从特定位置开始寻找匹配。
更多例子:

console.log([1, 2, 3].includes(2)) // === true)
console.log([1, 2, 3].includes(4)) // === false)
console.log([1, 2, NaN].includes(NaN)) // === true)
console.log([1, 2, -0].includes(+0)) // === true)
console.log([1, 2, +0].includes(-0)) // === true)
console.log(['a', 'b', 'c'].includes('a')) // === true)
console.log(['a', 'b', 'c'].includes('a', 1)) // === false)
ES8 새로운 기능1.Object.values/Object.entries# 🎜 🎜#

ES5에서는 매개변수 개체 자체의 모든 탐색 가능한(열거 가능한) 속성(상속된 항목 제외)의 키 이름을 구성원으로 포함하는 배열을 반환하는 Object.keys 메서드를 도입합니다.

Object.values ​​메소드는 매개변수 객체 자체의 모든 탐색 가능한(열거 가능한) 속성(상속된 항목 제외)의 키 값을 구성원으로 포함하는 배열을 반환합니다.

Object.entries 메소드는 매개변수 객체 자체의 모든 탐색 가능한(열거 가능한) 속성의 키-값 쌍 배열(상속된 항목 제외)을 구성원으로 포함하는 배열을 반환합니다.

et a = 7 ** 12
let b = 2 ** 7
console.log(a === Math.pow(7,12)) // true
console.log(b === Math.pow(2,7)) // true
开发者还可以操作结果:

let a = 7
a **= 12
let b = 2
b **= 7
console.log(a === Math.pow(7,12)) // true
console.log(b === Math.pow(2,7)) // true


2. 문자열 패딩

3. #Async/Await는 비동기 코드를 작성하는 새로운 방법입니다. 이전 메서드는 콜백 함수와 Promise였습니다. Promise에 비해 더 간결하고 오류, 조건문, 중간값 처리가 더 편리합니다

위 내용은 ES6, ES7, ES8에서 일반적으로 사용되는 기능 요약(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제