日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript

發布時間:2023/12/4 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節書摘來自異步社區《JavaScript專家編程》一書中的第1章,第1.1節,作者:【美】Mark Daggett(達格特)著,更多章節內容可以訪問云棲社區“異步社區”公眾號查看

第1章 對象和原型

練習不會造就完美,只有使用最佳的方法來練習才能造就完美。

——Vince Lombardi

對專家來說,把JavaScript的核心概念講上3章似乎有點多,畢竟這些是語言最基本的組成部分。我的主張是,有的人雖然不能讀寫,但可以說話。就像有的開發人員對JavaScript的基本功能很熟悉,但對里面那些復雜的東西可能就沒那么了解了。

本書的目標是像明燈一樣照亮語言中那些晦澀的角落。里面包含的很多概念你可能已經試著學習過了,甚至可以假設你已經理解了。這里可以想象一下:你正降落到你大腦中儲存著JavaScript的那一個房間。本書可以被看作是一盞探照燈,用來檢查你的JavaScript根基中那些有裂紋的地方。本章和下面的章節是用來彌補你的JavaScript知識漏洞的。不要覺得回顧這些知識沒用,這其實是對JavaScript知識結構的重新梳理。

我會先高度概括一下JavaScript的語言目標。但你知道它之前,放平你的肚子,匍匐穿過JavaScript中那些鮮為人知的概念。我會首先詳細介紹跟對象和原型相關的重要思想,然后在接下來的章節中介紹函數和閉包,這些都是JavaScript的基礎。

1.1 鳥瞰JavaScript

我們所說的JavaScript實際上是ECMAScript語言規范的一個實現。JavaScript若想被看作實現ECMAScript規范的一個有效版本,它必須支持規范中定義的語法和語義。作為ECMAScript的實現,JavaScript必須給程序員提供可使用的多種類型(types)、屬性(properties)、值(values)、函數(funtion)和一些保留字(reserved words)。

一旦JavaScript的某個版本已經符合了ECMAScript規范,那么語言設計者就可以自由地對版本進行加強,加入他們認為合適的額外功能和方法。ECMAScript規范中明確說明允許這樣的擴展,正如下面讀到的:

符合標準的ECMAScript實現,允許提供超出本規范描述的額外類型、值、對象、屬性和函數。尤其是本規范中描述的對象,允許提供未在本規范中描述的屬性和值。一個合乎ECMAScript規范的實現允許加入沒有在規范中描述的程序語法和正則表達式語法。

在ECMAScript中,一些額外的特性可以與核心要素并行存在,但仍然被認為是一種有效的ECMAScript標準的實現,這是ECMAScript標準組織發展的一個標志。ECMAScript對特性的要求比較寬泛,這帶來了一些好處但也有弊端。雖然靈活地添加新功能,可以鼓勵語言設計者的創新,但也會讓開發者處于一個不利的狀況:他們會為了支持不同的實現和運行環境而寫一些代碼(polyfills)1。

ECMAScript的規范會因為各種不同原因(原因太多,不一一列舉)不斷變化。根本上講,這些變化是為了使用新的方法來解決老的問題,或者用于支持在巨型計算生態系統中的改進。而不斷變化的規范就形成了語言的逐步進化。因此,雖然我要講的是“核心概念”,它們聽起來是不變的,但其實并非如此。本章探討的概念是那些最基本和重要的,但不要忘記,時刻要準備應對新變化的到來。

腳本設計
正如其名稱所示,ECMAScript是腳本語言,使用程序化的方式與主機環境進行交互。無論是瀏覽器、服務器或單片機,都可以為JavaScript暴露一些可操作的接口。大多數宿主環境僅允許JavaScript去觸發那些本來用戶就可以操作的功能(雖然用戶是手動的)。例如,在瀏覽器中,用戶可以使用鼠標或手指在網頁鏈接上單擊,JavaScript則可以用程序的形式完成單擊的操作,如下所示:

從傳統觀念上講,ECMAScript幾乎專門被設計成一種工具,用于在瀏覽器中編寫網絡腳本。開發人員用它來提升瀏覽網頁時的用戶體驗。如今,ECMAScript能用于服務器上,就像它被應用到瀏覽器中一樣,這一切歸功于V8或TraceMonkey這樣的獨立引擎。

ECMAScript標準組織預見到開發人員使用JavaScript的傳統方式和它目前成長的領域非常不一樣。在最近的規范中它聰明地界定了什么是“網絡腳本”,同時列舉了兩個當下比較流行的應用情境。

Web瀏覽器為ECMAScript在客戶端的運行提供了宿主環境,它封裝了一系列對象供ECMAScript使用,包括窗口、菜單、彈窗、對話框、文本區域、錨點、多窗口的頁面、歷史、cookie和輸入/輸出對象。此外,宿主環境提供了一種方式,將腳本代碼附著在事件上,例如焦點的改變,頁面和圖像的加載、卸載,錯誤和中斷,選擇,表單提交和鼠標操作。含有腳本代碼的HTML和被顯示的頁面是一種組合,腳本代碼提供用戶接口,而顯示頁面則提供靜態或動態的文字和圖片。腳本代碼用于響應用戶交互,也就不必要有個主程序了。

Web服務器為服務端的計算提供了不同的宿主環境,包括代表請求、客戶端和文件的對象,還包括鎖定以及共享數據的機制。在瀏覽器和服務端同時使用腳本語言,使得將計算邏輯分布到客戶端和服務端的同時能為基于Web的應用提供定制化的用戶接口。

每個支持ECMAScript的Web瀏覽器和服務器,都需要有滿足ECMAScript運行的宿主環境。


 在作者寫作本書時,最新版本的ECMAScript 6(命名為“Harmony”)已經快要發布了,雖然還沒有官方發布,但許多提案修改已經被一些運行時引擎和瀏覽器支持了。本章會對語言的核心進行詳盡說明,其中也包括一些在“Harmony”中剛剛引入的新特性。如果某個特性還沒有被大范圍支持,我會特別提醒讀者注意。

總結

以上是生活随笔為你收集整理的《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。