ES6 常用知識匯總,ES6模塊化如何使用,開發環境如何打包?

2021-01-08 前端程式設計師黃哥

ES6模塊化如何使用,開發環境如何打包?

1.模塊化的基本語法

/* export 語法 */

// 默認導出

export default {

a: '我是默認導出的',

}

// 單獨導出

export function fn1() {

console.log('我是函數1')

}

export function fn2() {

console.log('我是函數2')

}

/* import 語法 */

// 導入

// 默認導入

import util1 from './demo'

// 單獨導入

import { fn1, fn2 } from './demo'

console.log(util1)

fn1()

fn2()

2.開發環境配置

BabelES6新語法需要進行編譯,即轉換為ES5或者更早版本的語法,這個時候就需要Babel來進行轉換Babel是什麼?Babel是一個 JavaScript 編譯器,主要用於將 ECMAScript 2015+ 版本的代碼轉換為向後兼容的 JavaScript 語法,以便能夠運行在當前和舊版本的瀏覽器或其他環境中。Babel中文網Webpack模塊化工具3.關於JS眾多模塊化標準

class和普通構造函數有何區別?

1.JS構造函數

function MathHandle(x, y) {

this.x = x

this.y = y

}

MathHandle.prototype.add = function () {

return this.x + this.y

}

var m = new MathHandle(1, 2)

console.log(m.add()) // 3

2.class基本語法

class MathHandle {

constructor(x, y) {

this.x = x

this.y = y

}

add() {

return this.x + this.y

}

}

const m = new MathHandle(1, 2)

console.log(m.add()) // 3

3.語法糖

/* 本質只是一個語法糖 */

console.log(typeof MathHandle) // 'function'

console.log(MathHandle === MathHandle.prototype.constructor) // true

console.log(m.__proto__ === MathHandle.prototype) // true

4.繼承

// class 的繼承

class Father {

constructor(name, age) {

this.name = name

this.age = age

}

money() {

console.log('我有100元錢')

}

sum() {

console.log(this.name + '有' + this.age + '歲')

}

}

// extends 繼承父類

class Son extends Father {

constructor(name, age) {

super(name, age) // super 調用了父類中的構造函數

}

}

var son = new Son('小鑫', 22)

//可以使用父類的方法

son.money() // 我有100元錢

son.sum() // 小鑫有22歲

5.總結

class更加貼合面向對象的寫法;更加易讀、理解;本質還是語法糖,還是使用 prototype 實現的

Promise的基本使用和原理

為了解決「回調地獄」(鏈式發送ajax請求)而出現的一種解決方案,比如下面這種情況

$.ajax({

url: 'http:/localhost:3000/data',

success: function (response) {

console.log(response);

$.ajax({

url: 'http:/localhost:3000/data2',

success: function (response) {

console.log(response);

$.ajax({

url: 'http:/localhost:3000/data3',

success: function (response) {

console.log(response);

}

})

}

})

}

})

這個時候就需要使用

promise來處理ajax請求,主要分為以下四個步驟:

new Promist實例,而且要return;new Promist時要傳入函數,函數有resolvereject兩個參數;成功時執行resolve(),失敗時執行reject().then.catch監聽結果/**

* @description 基於Promise發送Ajax請求

* @param {String} url 請求地址

*/

function queryDate(url) {

const promise = new Promise(function (resolve, reject) {

const xhr = new XMLHttpRequest()

xhr.open('get', url)

xhr.send()

if (xhr.onload) {

// onload 只有狀態碼為4時才能回調一次函數

xhr.onload = function () {

if (xhr.status === 200) {

// 處理正常情況

resolve(xhr.responseText)

} else {

// 處理異常的情況

reject('伺服器錯誤')

}

}

} else {

// 支持低版本ie

// onreadystatechange是只要返回的狀態碼只要變化時就回調一次函數

xhr.onreadystatechange = function () {

if (xhr.readyState === 4 && xhr.status === 200) {

// 處理正常情況

resolve(xhr.responseText)

} else {

// 處理異常情況

reject('伺服器錯誤')

}

}

}

})

return promise

}

// 發送多個ajax請求並且保證順序 鏈式調用

// 第一次ajax請求

queryData('http://localhost:3000/data')

.then(function (data) {

console.log(data)

// 第二次ajax請求

return queryData('http://localhost:3000/data2')

})

.then(function (data) {

console.log(data)

// 第三次ajax請求

return queryData('http://localhost:3000/data3')

})

.then(function (data) {

console.log(data)

})

ES6其他常用的功能

let/const多行字符串/模板變量結構賦值塊級作用域函數默認參數箭頭函數(注意:是普通js函數的補充,修正this的指向)附帶上一張學習ES6基礎時的思維導圖

最後,咱給小編:

1. 點讚+評論

2. 點頭像關注,轉發給有需要的朋友。

謝謝!!

相關焦點

  • 前端工程化以及如何通過Node.js中babel來編譯es6模塊化代碼
    傳統開發模式的主要問題有兩個一是命名衝突 ,二是文件依賴。解決這兩個問題的方法就是模塊化什麼是模塊化?模塊化就是把單獨的一個功能封裝到一個模塊(文件)中,模塊之間相互隔離,但是可以通過特定的接口公開內部成員,也可以依賴別的模塊模塊化開發的好處:方便代碼的重用,從而提升開發效率,並且方便後期的維護一開始模塊化規範有哪些?
  • JavaScript中常用es6語法整理總結
    var定義變量的缺點letlet定義變量就不同了,它不存在變量提升問題,只有定義之後才能使用此變量(不存在變量提升一但 let c =11 沒有定義前輸出都會報錯) ,而且它有{ }作用域(在大括號外面輸出
  • 前端工程化(ES6模塊化和webpack打包css,less,scss,圖片,字體...
    模塊化規範傳統開發模式主要問題/* 1. 命名衝突 2. 文件依賴*/通過模塊化解決上述問題/* 模塊化就是把單獨的一個功能封裝在一個模塊(文件)中,模塊之間相互隔離, 但是可以通過特定的接口公開內部成員,也可以依賴別的模塊.
  • 22個ES6面試、複習乾貨知識點匯總
    答:ES6是新一代的JS語言標準,對分JS語言核心內容做了升級優化,規範了JS使用標準,新增了JS原生方法,使得JS使用更加規範,更加優雅,更適合大型應用的開發。學習ES6是成為專業前端正規軍的必經之路。不學習ES6也可以寫代碼打鬼子,但是最多只能當個遊擊隊長。ES5、ES6和ES2015有什麼區別?
  • 【PPT下載】6大要素、4個案例!快速讀懂模塊化AI
    肖洪波肖總圍繞人工智慧的發展、模塊化AI的六大要素深度講解了如何通過模塊化實現前端感知智能;侯朝陽侯總為我們分享了通過角蜂鳥開發套件實現模塊化AI的精彩案例。 以下是本次講解的提綱和實錄,共計10500字,預計11分鐘讀完。
  • 初學編程者如何擺脫搭建開發環境的困擾?
    你是否也有過類似慘痛的經歷:一不小心設錯一個環境參數或路徑,代碼就死活也跑不起來;明明嚴格按照步驟搭建起來的伺服器,又或者跟別人一模一樣的環境,但就是運行不了……圖片來源於網絡本文就初學編程者面臨的最大問題:如何搭建開發環境,給出了非常實用的解決方法,幫助初學者跳過搭建開發環境這個複雜又令人頭疼的環節,直接進入編程的學習,從而更加享受學習編程的樂趣。
  • java操作ES整個流程介紹
    圖1使用npm run start啟動elasticsearch-head-master,然後就可以從界面上查看ES數據。()));esIndexEntity.setPublishTime(apArticle.getPublishTime());esIndexEntity.setStatus(new Long(1));esIndexEntity.setTag("article");esIndexEntity.setTitle(apArticle.getTitle(
  • 如何使用Python進行網站開發?
    Python提供了一組開發Web應用程式的卓越工具。在本節中,我們將使用Django來開發一個個人記錄博客,其實通俗而言,就是一個在線日誌的系統,讓我們能夠記錄所學習的有關特定主題的知識。我們將為這個項目指定規範,然後為應用程式使用的數據定義模型。我們將使用Django的管理系統來輸入一些初始數據,再編寫視圖和模板,讓Django能夠為我們的網站創建網頁。
  • 搬家知識解答06:畢業搬家如何打包整理?這份超全打包神器適合你
    原來好不容易找到穩定工作,找到住所的她,現在最擔心的問題就是:畢業搬家如何打包整理學校裡面的東西?那麼多行李怎麼搬走?鑑於這次特殊的畢業方式,搬家過程可能會手忙腳亂。大家也不用太擔心!小豐吐血整理一份超全畢業搬家整理攻略,供你們參考。
  • 如何搭建SparkR的開發環境
    今天,我主要講解「如何搭建SparkR 的開發環境」。考慮到 ①多數網友使用的是Windows作業系統、 ②在Windows和Linux中搭建SparkR 的開發環境的相似性以及 ③Linux環境下的操作比Windwos簡單,我們主要介紹「在Windows作業系統之上搭建SparkR 的開發環境」的方法。
  • 萊布尼茲研究人員開發了可訪問的模塊化3D列印'CR2'顯微鏡
    「 U2」圍繞模塊化的可列印立方體構建,學者們可以在其上安裝透鏡,LED和照相機部件的組合,以適合其特定的研究領域。該團隊將其設計發布在GitHub上後,現在希望採用者可以利用其工具包的功能,並繼續改善複雜科學研究的可訪問性。
  • 瑞薩電子採用Andes RISC-V 32位CPU內核 開發其首款RISC-V架構ASSP...
    打開APP 瑞薩電子採用Andes RISC-V 32位CPU內核 開發其首款RISC-V架構ASSP產品 瑞薩電子 發表於 2020-10-10 11:20:44
  • 【SparkR編程系列教程】之一【如何搭建SparkR的開發環境】
    (1)如何搭建SparkR開發開發環境;(2)SparkR編程基礎知識講解(3)SparkR實例代碼詳解(4)基於SparkR的數據科學實戰。(註:本文內容為中國人民大學朝樂門老師的原創內容,轉載請註明出處及作者。
  • 網校網站源碼進行教育直播app開發常用的編碼及格式
    此外,教師還能夠利用網際網路教育的優勢,把各項教學信息進為行匯總,並對學生的學習行為和各項資料進行總結,進而有針對性地制定教學方案,做到「因材施教」,以滿足學生的個性化發展。那麼如何進行教育直播APP開發呢?
  • 如何編寫投標項目實施方案
    3.第三階段(計劃):2015年9月—2016年6月(1)在V1.0版的基礎上,匯總整理建設單位、應用試點單位、總體集成單位、應用集成單位的相關意見,充分完善研發需求和設計,完成軟體V2.0版。(2)形成V1.0版測試用例和搭建測試環境,請建設單位、應用試點單位、總體集成單位、應用集成單位進行系統的相關驗證。
  • 如何學習AE表達式以及一些常用的使用方法
    在學習AE的道路上,表達式是一個避不開的學習點,可能一些初學者聽到這個知識點會完全沒有概念,這篇文章寫來告訴大家,學習表達式其實難度並不大,下邊我們來看看如何學習AE表達式,以及掌握一些最基本的表達式知識和應用。
  • 教你如何使用Python的27萬代碼庫
    在這篇文章中,將討論如何通過PIP命令訪問和利用PyPI。怎麼用?下面乾貨PyPI是Python開發人員的默認軟體存儲庫,用於存儲創建的Python程式語言軟體開發人員和程式設計師,以用於公開和共享其軟體。與PyPI一起,通過PyPi-Install庫,您只需使用一個函數調用就可以將Python代碼上傳到PyPI。
  • JAVA 經典面試題:ES如何做到億級數據查詢毫秒級返回?
    #elasticsearch#lasticsearch在數十億級別以上的大量數據下如何提高查詢效率就是不可能調整一個參數或者換種語法就可以實用於所有環境,這或許在部分場景中可以,但是絕對不是在所有的場景下都實用。下面進入正題......
  • 2017年6月大學英語六級詞彙常用形容詞彙總
    新東方網>大學教育>四六級>複習輔導>六級>六級輔導>詞彙>正文2017年6月大學英語六級詞彙常用形容詞彙總 2017-03-14 10:57 來源
  • 【厚積薄發】線性空間下,如何處理GrabTexture顯示過亮的情況?
    這是第124篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收穫。參考文獻:https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_cm_spec_2.0.pdfhttps://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdfhttp://www.openglsuperbible.com/2013/12/09/