let let 聲明的變量只在當前代碼塊內有效 暫時性死區 不可重復聲明 不存在變量提升 必須先聲明在使用 const 聲明必須賦值, 一旦賦值不可更改 var 聲明可以不賦...
let let 聲明的變量只在當前代碼塊內有效 暫時性死區 不可重復聲明 不存在變量提升 必須先聲明在使用 const 聲明必須賦值, 一旦賦值不可更改 var 聲明可以不賦...
前言 筆者從去年就一直想參加鐵人賽 30 天,一方面是希望利用機會把自己的所學做一次整理,另一方面想訓練自己組織文章的能力。去年的時候我想寫 ECMAScript 2015,...
學習講究的是學以致用和融會貫通。至此我們已經分別介紹了NodeJS的很多知識點,本章作為最后一章,將完整地介紹一個使用NodeJS開發Web服務器的示例。 需求 我們要開發的...
NodeJS最大的賣點——事件機制和異步IO,對開發者并不是透明的。開發者需要按異步方式編寫代碼才用得上這個賣點,而這一點也遭到了一些NodeJS反對者的抨擊。但不管怎樣,異...
NodeJS可以感知和控制自身進程的運行環境和狀態,也可以創建子進程并與其協同工作,這使得NodeJS可以把多個程序組合在一起共同完成某項工作,并在其中充當膠水和調度器的作用...
不了解網絡編程的程序員不是好前端,而NodeJS恰好提供了一扇了解網絡編程的窗口。通過NodeJS,除了可以編寫一些服務端程序來協助前端開發和測試外,還能夠學習一些HTTP協...
讓前端覺得如獲神器的不是NodeJS能做網絡編程,而是NodeJS能夠操作文件。小至文件查找,大至代碼編譯,幾乎沒有一個前端工具不操作文件。換個角度講,幾乎也只需要一些數據處...
代碼的組織和部署 有經驗的C程序員在編寫一個新程序時首先從make文件寫起。同樣的,使用NodeJS編寫程序前,為了有個良好的開端,首先需要準備好代碼的目錄結構和部署方式,就...
什么是NodeJS JS是腳本語言,腳本語言都需要一個解析器才能運行。對于寫在HTML頁面里的JS,瀏覽器充當了解析器的角色。而對于需要獨立運行的JS,NodeJS就是一個解...
1. 瀏覽器加載 傳統方法 標簽打開defer或async屬性,腳本就會異步加載。渲染引擎遇到這一行命令,就會開始下載外部腳本,但不會等它下載和執行,而是直接執行后面的命令。...
1. 概述 由于 ES6 模塊是編譯時加載,使得靜態分析成為可能。有了它,就能進一步拓寬 JavaScript 的語法,比如引入宏(macro)和類型檢驗(type syst...
1. 簡介 Class可以通過extends關鍵字實現繼承,這比 ES5 的通過修改原型鏈實現繼承,要清晰和方便很多。 如果子類沒有定義constructor方法,這個方法會...
1. 簡介 ES6 提供了更接近傳統語言的寫法,引入了 Class(類)這個概念,作為對象的模板。通過class關鍵字,可以定義類。 基本上,ES6 的class可以看作只是...
1. 含義 async函數是什么?一句話,它就是 Generator 函數的語法糖。async函數就是將 Generator 函數的星號(*)替換成async,將yield替...
1. 簡介 基本概念形式上,Generator 函數是一個普通函數,但是有兩個特征。一是,function關鍵字與函數名之間有一個星號;二是,函數體內部使用yield表達式,...
1. Iterator(遍歷器)概念 Iterator 的作用有三個:一是為各種數據結構,提供一個統一的、簡便的訪問接口;二是使得數據結構的成員能夠按某種次序排列;三是 ES...
1. 含義 所謂Promise,簡單說就是一個容器,里面保存著某個未來才會結束的事件(通常是一個異步操作)的結果。Promise對象有以下兩個特點。 (1)對象的狀態不受外界...
1. 概述 (1) 將Object對象的一些明顯屬于語言內部的方法(比如Object.defineProperty),放到Reflect對象上。現階段,某些方法同時在Obje...
1. 概述 Proxy 可以理解成,在目標對象之前架設一層“攔截”,外界對該對象的訪問,都必須先通過這層攔截,因此提供了一種機制,可以對外界的訪問進行過濾和改寫。Proxy ...