1. 程式人生 > >你不知道的JavaScript(上卷)pdf

你不知道的JavaScript(上卷)pdf

前言  VIII
第一部分 作用域和閉包
序  2
第1章 作用域是什麼  4
1.1 編譯原理  4
1.2 理解作用域  6
1.2.1 演員表  6
1.2.2 對話  6
1.2.3 編譯器有話說  7
1.2.4 引擎和作用域的對話  9
1.2.5 小測驗  10
1.3 作用域巢狀  10
1.4 異常  12
1.5 小結  12
第2章 詞法作用域  14
2.1 詞法階段  14
2.2 欺騙詞法  17
2.2.1 eval  17
2.2.2 with  18
2.2.3 效能  20
2.3 小結  21
第3章 函式作用域和塊作用域  22
3.1 函式中的作用域  22
3.2 隱藏內部實現  23
3.3 函式作用域  26
3.3.1 匿名和具名  27
3.3.2 立即執行函式表示式  28
3.4 塊作用域  30
3.4.1 with  31
3.4.2 try/catch  31
3.4.3 let  32
3.4.4 const  35
3.5 小結  36
第4章 提升  37
4.1 先有雞還是先有蛋  37
4.2 編譯器再度來襲  38
4.3 函式優先  40
4.4 小結  41
第5章 作用域閉包  43
5.1 啟示  43
5.2 實質問題  44
5.3 現在我懂了  47
5.4 迴圈和閉包  48
5.5 模組  51
5.5.1 現代的模組機制  54
5.5.2 未來的模組機制  56
5.6 小結  57
附錄A 動態作用域  58
附錄B 塊作用域的替代方案  60
附錄C this詞法  64
附錄D 致謝  67
第二部分 this和物件原型
序  72
第1章 關於this  74
1.1 為什麼要用this  74
1.2 誤解  76
1.2.1 指向自身  76
1.2.2 它的作用域  79
1.3 this到底是什麼  80
1.4 小結  80
第2章 this全面解析  82
2.1 呼叫位置  82
2.2 繫結規則  83
2.2.1 預設繫結  83
2.2.2 隱式繫結  85
2.2.3 顯式繫結  87
2.2.4 new繫結  90
2.3 優先順序  91
2.4 繫結例外  95
2.4.1 被忽略的this  96
2.4.2 間接引用  97
2.4.3 軟繫結  98
2.5 this詞法  99
2.6 小結  101
第3章 物件  102
3.1 語法  102
3.2 型別  103
3.3 內容  105
3.3.1 可計算屬性名  106
3.3.2 屬性與方法  107
3.3.3 陣列  108
3.3.4 複製物件  109
3.3.5 屬性描述符  111
3.3.6 不變性  114
3.3.7 [[Get]]  115
3.3.8 [[Put]]  116
3.3.9 Getter和Setter  117
3.3.10 存在性  119
3.4 遍歷  121
3.5 小結  124
第4章 混合物件“類”  126
4.1 類理論  126
4.1.1 “類”設計模式  127
4.1.2 JavaScript中的“類”  128
4.2 類的機制  128
4.2.1 建造  128
4.2.2 建構函式  130
4.3 類的繼承  130
4.3.1 多型  132
4.3.2 多重繼承  134
4.4 混入  134
4.4.1 顯式混入  135
4.4.2 隱式混入  139
4.5 小結  140
第5章 原型  142
5.1 [[Prototype]]  142
5.1.1 Object.prototype  144
5.1.2 屬性設定和遮蔽  144
5.2 “類”  146
5.2.1 “類”函式  146
5.2.2 “建構函式”  149
5.2.3 技術  151
5.3 (原型)繼承  153
5.4 物件關聯  159
5.4.1 建立關聯  159
5.4.2 關聯關係是備用  161
5.5 小結  162
第6章 行為委託  164
6.1 面向委託的設計  165
6.1.1 類理論  165
6.1.2 委託理論  166
6.1.3 比較思維模型  170
6.2 類與物件  173
6.2.1 控制元件“類”  174
6.2.2 委託控制元件物件  176
6.3 更簡潔的設計  178
6.4 更好的語法  182
6.5 內省  185
6.6 小結  187
附錄A ES6中的Class  189

相關推薦

知道JavaScript上卷pdf

前言  VIII 第一部分 作用域和閉包 序  2 第1章 作用域是什麼  4 1.1 編譯原理  4 1.2 理解作用域  6 1.2.1 演員表  6 1.2.2 對話  6 1.2.3 編譯器有話說  7 1.2.4 引擎和作用域的對話  9 1.2.5 小測驗  10 1.3 作用域巢狀  10 1

學習筆記=>《知道JavaScript上卷》第五章:作用域閉包

什麼是詞法作用域?   在之前講過,我們平常寫程式碼的時候,建立一個變數和方法的時候在其書寫的位置(所在環境)會形   成一個作用域,即為詞法作用域,該作用域中的屬性和方法只能在當前環境內使用。   閉包   最簡單的一個閉包例項: function fun(){ va

知道javascript上卷

作用域 LHS & RHS 賦值操作的左右側 賦值操作的目標(LHS) 誰是賦值的源頭(RHS) 兩種工作模型 詞法作用域 只會查詢一級識別符號 欺騙詞法作用域: eval()在嚴格模式下,會有自己的詞法作用域,意味著其中的宣告無法修改其所在的作用域;

知道JavaScript上卷》筆記:作用域閉包

當函式可以記住並訪問所在的詞法作用域時,就產生了閉包,即使函式是在當前詞法作用域之外執行。 function foo() { var a = 2; function bar(){

使用“數據驅動測試”之前應該知道

clas back args ase 沒有 告訴 ... last 數據文件 我們繼續上期的話題,單純讀取數據文件來做自動化是有諸多問題的。那麽我們借助單元測試框架來做自動化就爽多了,因為它解決了測試中的幾問題。 如何定義一條測試用例,我們知道編程的世界裏並沒“用例”的概

知道的js上卷知識歸納1

作用域和閉包 1.作用域是什麼 前言 夠儲存變數當中的值,並且能在之後對這個值進行訪問或修改。這樣的能力將狀態帶給了程式。沒有這樣的能力程式設計收到了高度的限制。 上述的言論由此引入了話題:什麼是變數,變數儲存在哪裡,如何在程式需要時如何找到它們? 劃重點:這章簡單說道了編譯原理這個話題,引出了傳統的

知道的css3(上 -- 用css3為的元件新增風景

寫在前面:現在很多前端文章其實都是在講js以及一些js框架的東西,但其實css3中有許多好玩的東西,可以為你的一些css元件新增一些亮色,這篇文章介紹了幾個比較好玩的效果,希望有個拋磚引玉的效果 一.3D風景動態骰子 線上演示 1、css3D、動畫基礎知識預備 2、建立一個3D場景

2020了,初/中級前端面試應該知道

1. 專案介紹 簡單介紹 2. 專案中遇到的問題 簡單介紹 3. 最近一個專案用到哪些技術 Vue,Vant,對接微信小程式和支付寶小程式 4. 移動端適配方案 ① 定高適配 ② 流式佈局 ③ 響應式佈局 ④ Rem適配 5. 陣列的求最大值,排序,刪除 氣泡

知道javascript上卷筆記

java title head javascrip itl utf-8 body doc ctype <!DOCTYPE html> <html> <head> <meta charset="utf-8">

JavaScript中的this—知道JavaScript上卷讀書筆記

情況下 修改 位置 必須 細節 fin 有關 zed 重要 this是什麽? this 是在運行時進行綁定的,並不是在編寫時綁定,它的上下文取決於函數調用時的各種條件。this 的綁定和函數聲明的位置沒有任何關系,只取決於函數的調用方式。當一個函數被調用時,會創建一個活動記

知道javascript上卷》讀書筆記kyle simpson 著,趙望野、梁譯

def javascrip arr fin type fine sim imp func 一、關於this篇: 1.this實際上是在函數被調用時發生的綁定,它指向什麽完全取決於函數在哪裏被調用 2.this優先級:new>顯示綁定>隱式綁定>默認綁定。

知道JavaScript上中下卷pdf附網盤下載連結+附一個菜鳥的java學習之路

技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好的作用。 對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的

知道javascript中卷筆記

沒有 light char 布爾值 都是 sin 執行 new 內容 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>你不

翻譯連載 | 附錄 A:Transducing-《JavaScript輕量級函數式編程》 |《知道的JS》姊妹篇

產生 斷言 需要 pipe [] 個數 word 視頻 block 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關於譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的

一、作用域是什麽 學習筆記—— 《知道JavaScript

筆記 變量 如何 都是 先來 png 模擬 特定 function 因為全部都是文字不太好理解,所以盡可能地把所有的文字都畫成了圖,便於理解。 作用域是什麽 傳統編譯流程: JavaScript 引擎會在語法分析和代碼生成階段,通過特定的步驟,對運行性能進行優化

知道JavaScript——do表示式和eval

ES7 規範有一項“do 表示式”(do expression)提案,但是具體的用例和語法還沒有廣泛使用,所以這裡只作提及,類似下面這樣: var a, b; a = do { if (true) { b = 4 + 38; } }; a; // 42

一、作用域是什麼 學習筆記—— 《知道JavaScript

因為全部都是文字不太好理解,所以儘可能地把所有的文字都畫成了圖,便於理解。 作用域是什麼 傳統編譯流程: JavaScript 引擎會在語法分析和程式碼生成階段,通過特定的步驟,對執行效能進行優化。包括冗餘元素優化等。 JavaScript 編譯,大部分情況下,發生在程式碼執行前的幾微妙(甚至更短)。

二、詞法作用域 學習筆記—— 《知道JavaScript

目錄 詞法作用域 詞法階段 查詢 欺騙詞法 eval with 效能 詞法作用域 作用域工作模型: 詞法作用域(大多數程式語言採用) 動態作用域 詞法階段 大部分標準語言編譯器的第一個工作階段就是詞法化。 詞法化的過程:會對原始碼中的程式碼進行檢查,如果是有狀態的解析過程,還會賦予單詞語義。

知道JavaScriptthis和物件原型原型

  五章 原型 1、[[ Prototype ]] JavaScript 中的物件有一個特殊的 [[Prototype]] 內建屬性,其實就是對於其他物件的引用。幾乎所有的物件在建立時 [[Prototype]] 屬性都會被賦予一個非空的值。 對於預設的 [[Get]] 操作來說,如果無法在

知道JavaScript讀書筆記

第一章 1、內建型別 JavaScript有七種內建型別【除了物件以外,其他統稱為“基本型別”】: 空值(null) 未定義(undefined) 布林值(boolean) 數字(number) 字元竄(string) 物件(object) 符號(symbol,ES6新增的