JavaScript語言精粹(修訂版) 內容簡介
JavaScript 曾是“世界上誤解的語言”,因為它擔負太多的特性,包括糟糕的交互和失敗的設計,但隨著Ajax 的到來,JavaScript“從受誤解的編程語言演變為非常流行的語言”,這除了幸運之外,也證明了它其實是一門優秀的語言。Douglas Crockford 在本書中剝開了JavaScript 沾污的外衣,抽離出一個具有更好可靠性、可讀性和可維護性的JavaScript 子集,讓你看到一門優雅的、輕量級的和非常富有表現力的語言。作者從語法、對象、函數、繼承、數組、正則表達式、方法、樣式和優美的特性這9 個方面來呈現這門語言真正的精華部分,通過它們完全可以構建出優雅高效的代碼。作者還通過附錄列出了這門語言的毒瘤和糟粕部分,且告訴你如何避免它們。最后還介紹了JSLint,通過它的檢驗,能有效地保障我們的代碼品質。
《JavaScript語言精粹(修訂版)》是一本介紹JavaScript 語言本質的專業書籍,值得任何正在或準備從事JavaScript 開發的人閱讀,并且需要反復閱讀。學習、理解、實踐大師的思想,我們才可能站在巨人的肩上,才有機會超過大師,這本書就是開始。
JavaScript語言精粹(修訂版) 目錄
第1 章 精華
為什么要使用JavaScript
分析JavaScript
一個簡單的試驗場
第2 章 語法
空白
標識符
數字
字符串
語句
表達式
字面量
函數
第3 章 對象
對象字面量
檢索
更新
引用
原型
反射
枚舉
刪除
減少全局變量污染
第4 章 函數
函數對象
函數字面量
調用
參數
返回
異常
擴充類型的功能
遞歸
作用域
閉包
回調
模塊
級聯
柯里化
記憶
第5 章 繼承
偽類
對象說明符
原型
函數化
部件
第6 章 數組
數組字面量
長度
刪除
枚舉
容易混淆的地方
方法
指定初始值
第7 章 正則表達式
一個例子
結構
元素
第8 章 方法
Array
Function
Number
Object
RegExp
String
第9 章 代碼風格
第10 章 優美的特性
附錄A 毒瘤
附錄B 糟粕
附錄C JSLint
附錄D 語法圖
附錄E JSON
索引
JavaScript語言精粹(修訂版) 精彩文摘
第4章
函數
JavaScript設計得最出色的就是它的函數的實現。它幾乎接近于完美。但是,想必你也能預料到,JavaScript的函數也存在瑕疵。函數包含一組語句,它們是JavaScript的基礎模塊單元,用于代碼復用、信息隱藏和組合調用。函數用于指定對象的行為。一般來說,所謂編程,就是將一組需求分解成一組函數與數據結構的技能。
函數對象
JavaScript中的函數就是對象。對象是“名/值”對的集合并擁有一個連到原型對象的隱藏連接。對象字面量產生的對象連接到Object.prototype。函數對象連接到Function.prototype(該原型對象本身連接到Object.prototype)。每個函數在創建時會附加兩個隱藏屬性:函數的上下文和實現函數行為的代碼。
每個函數對象在創建時也隨配有一個prototype屬性。它的值是一個擁有constructor屬性且值即為該函數的對象。這和隱藏連接到Function.prototype完全不同。這個令人費解的構造過程的意義將會在下個章節中揭示。
因為函數是對象,所以它們可以像任何其他的值一樣被使用。函數可以保存在變量、對象和數組中。函數可以被當做參數傳遞給其他函數,函數也可以再返回函數。而且,因為函數是對象,所以函數可以擁有方法。
函數的與眾不同之處在于它們可以被調用。
調用
調用一個函數會暫停當前函數的執行,傳遞控制權和參數給新函數。除了聲明時定義的形式參數,每個函數還接收兩個附加的參數:this和arguments。參數this在面向對象編程中非常重要,它的值取決于調用的模式。在JavaScript中一共有4種調用模式:方法調用模式、函數調用模式、構造器調用模式和apply調用模式。這些模式在如何初始化關鍵參數this上存在差異。
調用運算符是跟在任何產生一個函數值的表達式之后的一對圓括號。圓括號內可包含零個或多個用逗號隔開的表達式。每個表達式產生一個參數值。每個參數值被賦予函數聲明時定義的形式參數名。當實際參數(arguments)的個數與形式參數(parametem)的個數不匹配時,不會導致運行時錯誤。如果實際參數值過多了,超出的參數值會被忽略。
- 我的微信
- 掃一掃加好友
-
- 微信公眾號
- 掃一掃關注
-
2019年9月20日 下午8:38 1F
大神