当前位置:首页 >> 资讯

JavaScript ES6 语法特性概述

来源:资讯   2023年04月23日 12:16

以用到默认参数进行函数调用,仅当未通过算子调用参数时,才会用到这些参数。

ES5

var func = function (a, b) { b = b === undefined ? 2 : b return a + b}

ES6

let func = (a, b = 2) => { return a + b}func(10) // returns 12func(10, 5) // returns 15

引入词法-Spread syntax

引入词法可用做引入codice_。

let arr1 = [1, 2, 3]let arr2 = ['a', 'b', 'c']let arr3 = [...arr1, ...arr2]console.log(arr3) // [1, 2, 3, "a", "b", "c"]

引入词法可用做引入算子参数。

let arr1 = [1, 2, 3]let func = (a, b, c) => a + b + cconsole.log(func(...arr1)) // 6

类/函数调用-Classes/constructor functions

ES6 在基于蓝本的函数调用底下引进了类词法。

ES5

function Func(a, b) { this.a = a this.b = b}Func.prototype.getSum = function () { return this.a + this.b}var x = new Func(3, 4)

ES6

class Func { constructor(a, b) { this.a = a this.b = b } getSum() { return this.a + this.b }}let x = new Func(3, 4)x.getSum() // returns 7

分家-Inheritance

extends 标签分家父类

ES5

function Inheritance(a, b, c) { Func.call(this, a, b) this.c = c}Inheritance.prototype = Object.create(Func.prototype)Inheritance.prototype.getProduct = function () { return this.a * this.b * this.c}var y = new Inheritance(3, 4, 5)

ES6

class Inheritance extends Func { constructor(a, b, c) { super(a, b) this.c = c } getProduct() { return this.a * this.b * this.c }}let y = new Inheritance(3, 4, 5)y.getProduct() // 60

模块包的导出/引进-Modules - export/import

可以始创模块在份文件之间导出和导入代码。

index.html

export.js

let func = (a) => a + alet obj = {}let x = 0export {func, obj, x}

import.js

import {func, obj, x} from './export.js'console.log(func(3), obj, x)

尽力/回调-Promises/callbacks

尽力表示异步算子的完成。它们可以主要用途页面算子的替代工具。

ES5 callback

function doSecond() { console.log('Do second.')}function doFirst(callback) { setTimeout(function () { console.log('Do first.') callback() }, 500)}doFirst(doSecond)

ES6 Promise

let doSecond = () => { console.log('Do second.')}let doFirst = new Promise((resolve, reject) => { setTimeout(() => { console.log('Do first.') resolve() }, 500)})doFirst.then(doSecond)

下面一个用到 XMLHttp 劝说的示例,仅用做幻灯片目的(获取 API 将是要用到的正确现代 API)。

ES5 callback

function makeRequest(method, url, callback) { var request = new XMLHttpRequest() request.open(method, url) request.onload = function () { callback(null, request.response) } request.onerror = function () { callback(request.response) } request.send()}makeRequest('GET', '', function (err, data) { if (err) { throw new Error(err) } else { console.log(data) }})

ES6 Promise

function makeRequest(method, url) { return new Promise((resolve, reject) => { let request = new XMLHttpRequest() request.open(method, url) request.onload = resolve request.onerror = reject request.send() })}makeRequest('GET', '') .then((event) => { console.log(event.target.response) }) .catch((err) => { throw new Error(err) })。

北京甲状腺医院专家预约挂号
如何缓解肌肉拉伤疼
北京中医医院哪个比较好
颈椎病怎样治疗最好
上海治白癜风专科医院哪家好
友情链接