轉:時間:2010-09-12 09:35 來源:PHP100中文網 作者:PHP100er
JavsScript是可以在各種不同環境下使用的動態、鬆散類型(loosely typed)、基於原型的程式設計語言。除了作為流行的Web用戶端程式語言,它還可以使用於IDE外掛程式、PDF檔案或給予其它平台甚至更為抽象的概念。
JavaScript 是由來自Netscape得Brendan Eich創造的基於ECMAScript標準(ECMA-262)的語言。他最初被命名為LiveScript,但後來被改為JavaScript,這也是很多人會把它跟java混淆的原因之一。以下是它的一些特性的詳細說明:
◆動態程式語言在運行時執行;他們並沒有編譯。正因為此,有時JavaScript被認為是一種指令碼語言,而不是一個真正的程式設計語言(顯然是一種誤解)。
◆鬆散類型語言不要求強型別系統,如果你使用C或Java編程(與JavaScript不同)聲明變數時你就明白必須聲明類似’int’(整型)。JavaScript的不同之處在於你用不著指定它的類型。
◆在JavaScript中我們使用原型來實作類別似繼承的效果,JavaScript不支援類。
◆JavaScript也是函數式語言,它處理函數為優先對象。它是基於lambda下的理念。
理解以上概念對於學習JavaScript這門技術關係並不是很大。只是讓大家對JavaScript有個初步正確的的認識,並瞭解JavaScript與其它程式設計語言的本質區別。
文件物件模型
文件物件模型(Document Object Model),通常簡稱為DOM,是網站內容與JavaScript互連的介面。自JavaScript成為最常用的語言時JavaScript和DOM通常被視為獨立的實體。DOM介面用於存取、遍曆和控制HTML和XML文檔。
下面是關於DOM的一些重要的知識:
◆Window對象作為全域對象,你僅需嘗試使用”window”來訪問它。Window對象下包含了你的所有要執行的JavaScript代碼。就像所有對象都包含屬性和方法。
◆屬性是儲存於對象下的變數。所有在網頁中建立的變數都會成為window對象的屬性。
◆方法是儲存在對象下的函數。在所有函數儲存在window對象下時,你可以使用’methods’引用它們。
◆DOM相對於Web文檔結構建立階層,層次有節點群組成。DOM節點有很多不同的類型,其中最重要的要數’Element’、’Text’和’Document’了。
◆‘Element’節點表示在頁面中的元素,所以如果在頁面中你有一個段落元素(‘
’),那麼你可以通過DOM的節點來訪問它。
◆‘Text’節點表示在頁面中的所有文本(在元素中),所以如果在頁面的段落中有一些常值內容,那麼你可以通過DOM的節點來訪問它。
◆‘Document’節點表示整個文檔。(它是DOM樹的根節點)
◆另請注意,元素屬性是DOM節點本身。
◆不同的布局引擎對於DOM標準的執行是有一定的差別的。例如,使用Gecko布局引擎的FireFox瀏覽器可以很好的執行(但也並不是完完全全按照W3C規範那樣),但使用Trident引擎的IE因它的很多Bug和不完全執行DOM標準而為眾人所知。這便是前端開發領域的一大痛苦之處。
網頁中的JavaScriptScript元素
當你想在網站上使用JavaScript的時候,需要讓它們包含在script元素中:
-
-
-
-
-
-
-
-
-
-
-
-
正如你所見在文檔下面有script元素。其實type屬性嚴格來講應設定為”application/javascript”,但它不出所料的在IE瀏覽器下無法正常工作,所以我們使用”text/javascript”或不用type屬性,如果你在意代碼W3C規範驗證的話建議你使用前者(“text/javascript”)。
你還會注意到在script元素中我們還有一對被注釋掉的程式碼,它們告訴支援XHTML的瀏覽器script元素中的內容是字元資料而不應被解釋為XHTML標記。如果你計劃在JavaScript代碼中使用’’字元的話那它就是相當必要的。當然,如果你是用普通HTML代碼的話,那你完全可以無視它。
defer屬性
我們script元素中的JavaScript代碼會在頁面讀過程中執行,唯一的例外就是當script元素有defer屬性的時候。預設情況下,當瀏覽器遇到script元素時,它會停下來並運行代碼,然後再繼續進行文檔解析。defer屬性告訴瀏覽器程式碼封裝含非變更文檔代碼而且可以稍後執行。它的唯一問題就是只在IE下可用,所以我們還是要盡量不要使用它了,瞭解就行。
連結外部指令碼
如果你想串連一個外部指令檔,那麼你只需為你的script元素添加一個有檔案地址的src屬性。把指令檔獨立分離出來進行調用的確相對於內聯指令碼來說是個好辦法,它意味著瀏覽器可以緩衝該檔案,而且你都不用擔心那些CDATA之類的廢話。
-