JavaScript
弱型別、直譯式的物件導向程式語言

JavaScript的起源可以追溯到1995年的Netscape公司所推出的瀏覽器Navigator 2.0,由於它提供更好的互動行為,很快地便在WWW的世界裡盛行,而微軟也在隔年的Internet Explorer 3.0版中加入了JScript(由於JavaScript的名稱已經註冊,因此微軟以JScript命名)。

JavaScript雖然一開始就取得成功,不過實際應用時,往往局限在一些花俏的裝飾元素,像是跑馬燈、彈跳視窗控制等,讓人誤以為JavaScript的能耐只有如此,也讓一些程式開發人員視JavaScript為小道,而不願去深入了解它的本質。

一直到Web 2.0蔚為一股風潮後,在增進網站與使用者互動的體驗上,JavaScript具有相當大的潛力與效果,於是在Ajax這個名詞包裝之下,JavaScript又重新站上舞臺,不管是就開發的層面,或是能展現的效果而言,開發人員才意識到JavaScript並不如想像中的簡單。也因此,許多JavaScript的框架應運而生,像是jQuery、Prototype、YUI等,讓開發人員可以更容易在網站中使用JavaScript,達到豐富效果的互動介面。

就JavaScript本身的語法特色來說,它的程式語法和C++、Java等物件導向程式風格頗為相近,但是它本身為不須編譯的直譯式語言,而且,鬆散型態讓它在使用變數時不需宣告型態,以及不採取Class的方式來實作繼承的機制,都讓它與其他的物件導向語言有所不同。這類的特色,往往能讓它在開發程式時可以更為靈活、簡易。

雖然JavaScript最常執行的環境是網頁瀏覽器,因此被稱為用戶端的腳本程式,用來和PHP、ASP這類在伺服器端的程式區別。不過JavaScript也能在別的環境中執行,例如當初Netscape推出的網頁伺服器,便可利用JavaScript作為管理的程式;而微軟的IIS以及Windows Scripting Host中,也都使用了JScript直譯器。文⊙黃天賜

Associative Array
關聯式陣列

關聯式陣列這種資料結構,能使用字串作為索引值,與任何資料值建立對應關係。而JavaScript的物件除了能用常用的「.」運算子來存取符號之外,也能透過關聯式陣列的表式方法來存取。

例如「student.name」的物件.屬性表示法,可以用來存取學生的姓名,JavaScript也可以用student[‘name’]的方式取得姓名。

ECMAScript
歐洲電腦製造協會標準化的腳本程式

Netscape在1996年將JavaScript提交給歐洲電腦製造協會(European computer Manufacturer’s Association,ECMA),以制定標準化的腳本規格,而ECMA在隔年便推出ECMAScript 1.0版,此後各家瀏覽器便以這個標準實作JavaScript。

目前ECMAScript公布到第三版,第四版也已經在發展當中,可能會加入強型別與明確的Class定義。

Function Literal
函式實字

函式在JavaScript中,具有相當靈活的特性,它既可以作為一種資料型態,儲存在變數、陣列和物件中,也能作為參數傳遞給其他函式。

另外JavaScript也提供了函式實字的定義語法,透過function關鍵字,可以將匿名函式傳遞給變數,增加程式開發的便利性,許多JavaScript的框架或函式庫都充份利用函式實字特性。

JavaScript Framework
JavaScript框架

JavaScript框架是為了簡化與加速JavaScript的應用而產生,它通常會提供簡易的語法,讓開發人員完成一連串複雜的操作。例如jQuery提供的「$( )」語法,能夠讓開發人員直覺地存取網頁文件物件中的元素,再執行後續的操作。

JavaScript框架通常還會提供動態效果的展現、非同步資料傳輸的函式等,另外,JavaScript框架也事先處理瀏覽器的相容性差異,增加開發人員的生產力。

JSON
JavaScript物件表示法

JSON(JavaScript Object Notation)是利用JavaScript原生語法組成的資料格式,訴求容易編寫與閱讀,也容易讓程式解析與生成。藉由這樣的特性,資料更容易交換。

相對於XML在查詢與處理上較為複雜,JSON是透過關聯陣列與有序陣列組合而成,這種資料結構在大多數的程式語言中已有支援,因此JSON的應用也不局限在JavaScript中,近年應用的範圍越來越廣。

Prototype Object
原型物件

JavaScript的每一個物件,都包含了一個內部參考指標指向原型物件,任何原型物件的屬性,都會指定給參考這個原型物件而產生的物件。從物件導向的觀點來看,就像是繼承了原型物件的屬性。

對於沒有真實類別的JavaScript而言,原型物件提供了類似類別繼承的機制,開發人員可以藉由改寫原型物件,設計一些物件共同的方法或屬性,在初始化時指定給物件。

Scope Chain
範圍鏈

JavaScript的執行環境都有一個對應的範圍鍵,是由一連串的物件構成,在程式要存取某個變數時,會從範圍鍵的第一個物件開始找起,如果符合,便採用這個值;如果沒發現,便繼續找下個物件,直到發現符合的變數名稱為止。

範圍鏈的找尋過程,會由函式構成的區域範圍找起,查詢不到時,再往廣域範圍中探索,因此善用區域變數,可以增加程式執行的效率。

Unobtrusive
無侵入性

無侵入性是近幾年相當盛行的JavaScript設計觀念,它主張JavaScript不應該對網頁原始碼以及使用者造成干擾。

為了達成這個訴求,首要的目標就是讓HTML標記與JavaScript程式保持分離,讓內容與行為能清楚畫分為二,因此可以透過模組化的方式,使JavaScript不與HTML文件混雜在一起。同時,也要能確保如果不能執行JavaScript時,網頁一樣能正常運作。

Untype
無型態

在變數型態上,JavaScript與Java或C的一個差異,在於JavaScript是無型態的語言,它的變數可以存放任意型態的資料,因此同一變數,可以先指定一個數字型態,之後仍然可以指定字串型態到該變數,對於JavaScript而言完全是合法的,而且它會依照程式碼的上、下文語境,自動判斷並轉換型別。這種作法雖然不如Java或C在處理變數時那般嚴謹,卻讓程式開發工作更為簡易。

熱門新聞

Advertisement