javascript快速入門1--JavaScript前世今生,HelloWorld與開發環境


JavaScript歷史

大概在1992年,一家稱作Nombas的公司開始開發一種叫做C--(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。 Cmm背后的理念很簡單:一個足夠強大可以替代宏操作(macro)的腳本語言,同時保持與C(和C++)中夠的相似性,以便開發人員能很快學會。 這個腳本語言捆綁在一個叫做CEnvi的共享軟件產品中,它首次向開發人員展示了這種語言的威力。 Nombas最終把Cmm的名字改成了ScripEase。原因是后面的部分(mm)聽起來過於“消極”,同時字母C“令人害怕”。 現在ScriptEase已經成為了Nombas產品背后的主要驅動力。 當Netscape Navigator嶄露頭角時,Nombas開發了個可以嵌入網頁中的CEnvi的版本。 這些早期的試驗稱為Espresso Page(濃咖啡般的頁面),它們代表了每個在萬維網上使用的客戶端腳本語言。 而Nombas絲毫沒有料到它的理念將會成為因特網的一塊重要基石。

當網上沖浪越來越流行時,對於開發客戶端腳本的需求也逐漸增大。此時,大部分因特網用戶還僅僅通過28.8kbit/s的調制解調器來連接到網絡,即便這時網頁已經不斷地變得更大和更復雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與服務器端進行多次的往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了30秒鍾的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段。那時正處於技術革新最前沿的Netscape,開始認真考慮一種開發客戶端腳本語言來解決簡單的處理問題。

當時工作於Netscape的Brendan Eich,開始着手為即將在1995年發行的Netscape Navigator 2.0開發一個稱之為LiveScript的腳本語言,當時的目的是同時在瀏覽器和服務器(本來要叫它LiveWire的)端使用它。Netscape與Sun公司聯手及時完成LiveScript實現。就在Netscape Navigator 2.0即將正式發布前,Netscape將其更名為JavaScript,目的是為了利用Java這個因特網時髦詞匯。Netspace的賭注最終得到回報,JavaScript從此變成了因特網的必備組件。

因為JavaScript 1.0如此成功,Netscape在Netscape Navigator 3.0中發布了1.1版。恰巧那個時候,微軟決定進軍瀏覽器,發布了IE 3.0 並搭載了一個JavaScript的克隆版,叫做JScript(這樣命名是為了避免與Netscape潛在的許可糾紛)。微軟步入Web瀏覽器領域的這重要一步雖然令其聲名狼藉,但也成為JavaScript語言發展過程中的重要一步。

在微軟進入后,有3種不同的JavaScript版本同時存在:Netscape Navigator 3.0中的JavaScript、IE中的JScript以及CEnvi中的ScriptEase。與C和其他編程語言不同的是,JavaScript並沒有一個標准來統一其語法或特性,而這3種不同的版本恰恰突出了這個問題。隨着業界擔心的增加,這個語言標准化顯然已經勢在必行。

1997年,JavaScript 1.1作為一個草案提交給歐洲計算機制造商協會(ECMA)。第39技術委員會(TC39)被委派來“標准化一個通用、跨平台、中立於廠商的腳本語言的語法和語義”(http://www.ecma-international.org/memento/TC39.htm)。由來自Netscape、Sun、微軟、Borland和其他一些對腳本編程感興趣的公司的程序員組成的TC39錘煉出了ECMA-262,該標准定義了叫做ECMAScript的全新腳本語言。

在接下來的幾年里,國際標准化組織及國際電工委員會(ISO/IEC)也采納ECMAScript作為標准(ISO/IEC-16262)。從此,Web瀏覽器就開始努力(雖然有着不同程度的成功和失敗)將ECMAScript作為JavaScript實現的基礎。

盡管ECMAScript是一個重要的標准,但它並不是JavaScript唯一的部分,當然,也不是唯一被標准化的部分。實際上,一個完整的JavaScript實現是由以下3個不同部分組成的

  • 核心(ECMAScript)——JavaScript的核心ECMAScript描述了該語言的語法和基本對象
  • 文檔對象模型(DOM)——DOM描述了處理網頁內容的方法和接口
  • 瀏覽器對象模型(BOM)——BOM描述了與瀏覽器進行交互的方法和接口

ECMAScript、DOM、BOM將是我們之后課程的主要內容。

JavaScript與Java

盡管名字中有Java,但是JavaScript和Java幾乎沒有什么共同點。Java是一種全功能的編程語言,是由Sun公司開發和推廣的。Java是C和C++編程語言之后的又一種主流語言,程序員可以使用它創建完整的應用程序和控制消費電子設備。與其他語言不同,Java宣稱具有跨平台兼容性;也就是說,程序員應該能夠編寫出可以在所有種類的機器上運行的Java程序,無論機器運行的是Windows、Mac OS X還是任何風格的UNIX。但實際上,Java不總是能夠實現這個夢想,因為Sun和微軟公司在這種語言的發展方向方面有很大的分歧。微軟公司首先試圖以自己的方式將Java集成到Windows中(Sun認為,這種方式使Java在Windows上以一種方式工作,而在其他機器上以另一種方式工作,從而破壞了Java的跨平台兼容性);隨后,微軟公司從Windows中完全去除了Sun的Java,而創建了自己的類Java語言:C#。經過兩公司之間的一輪訴訟之后,Sun占據了上風,現在可以在Windows(或Linux)上安裝Sun的最新Java版本(http://www.java.com/getjava/)。Mac OS X操作系統在安裝時會附帶Java。

JavaScript可以做什么

用JavaScript可以做許多事情,使網頁更具交互性,給站點的用戶提供更好、更令人興奮的體驗。JavaScript使你可以創建活躍的用戶界面,當用戶在頁面間導航時向他們提供反饋。例如,你可能在一些站點上見過在鼠標指針停留時突出顯示的按鈕。這是用JavaScript實現的,使用了一種稱為翻轉器(rollover)的技術 可以使用JavaScript確保用戶在表單中輸入有效的信息,這可以節省你的業務時間和開支。如果表單需要進行計算,那么可以在用戶機器上的JavaScript中完成,而不需要任何服務器端處理。你應該知道一種區分程序的方式:在用戶機器上運行的程序稱為客戶端(client-side)程序;在服務器上運行的程序(包括后面要討論的CGI)稱為服務器端(server-side)程序。 可以使用JavaScript根據用戶的操作即時創建定制的HTML頁面。假設你正在運行一個旅行指南站點,用戶點擊夏威夷作為旅游目的地。你可以在一個新窗口中顯示最新的夏威夷旅游指南。JavaScript可以控制瀏覽器,所以你可以打開新窗口、顯示警告框以及在瀏覽器窗口的狀態欄中顯示定制的消息。JavaScript有一套日期和時間特性,可以生成時鍾、日歷和時間戳文檔。 JavaScript還可以處理表單、設置cookie、即時構建HTML頁面以及創建基於Web的應用程序。

JavaScript不能做什么

JavaScript是一種客戶端(client-side)語言;也就是說,設計它的目的是在用戶的機器上執行任務,而不是在服務器上。因此,JavaScript有一些固有的限制,這些限制主要出於安全原因:

  • 1.JavaScript不允許讀寫客戶機器上的文件。這是有好處的,因為你肯定不希望網頁能夠讀取自己硬盤上的文件,或者能夠將病毒寫入硬盤,或者能夠操作你計算機上的文件。唯一的例外是,JavaScript可以寫到瀏覽器的cookie文件,但是也有一些限制
  • 2.JavaScript不允許寫服務器機器上的文件。盡管寫服務器上的文件在許多方面是很方便的(比如存儲頁面點擊數或用戶填寫的表單數據),但是JavaScript不允許這么做。相反,需要用服務器上的一個程序處理和存儲這些數據。這個程序可以是用Perl或PHP等語言編寫的CGI或Java程序。
  • 3.JavaScript不能關閉不是由它自己打開的窗口。這是為了避免一個站點關閉其他任何站點的窗口,從而獨占瀏覽器。
  • 4.JavaScript不能從來自另一個服務器的已經打開的網頁中讀取信息。換句話說,網頁不能讀取已經打開的其他窗口中的信息,因此無法探察訪問這個站點的沖浪者還在訪問哪些其他站點。

我們的第一個腳本:最經典的HelloWorld程序!

	<script type="text/javascript">
		document.write("<h2>Hello,JavaScriptWorld!</h2>");
	</script>

開發環境

選擇一個你喜歡的純文本編輯器或 IDE
NotePad++
VIM
UltraEdit
EditPlus
gEdit(Unix)
Emacs(Mac/Unix)
其它
至少一個符合W3C標准的瀏覽器(推薦火狐瀏覽器),和一些市場上流行的瀏覽器(IE)
FireFox 3.0+
Internet Explorer 6.0+ (由於IE具有多種不同的版本,還推薦安裝IETester)
Google Chrome 1.0+
Opera 9.0+
Safari 3.0+
調試工具
FireFox下的FireBug,Venkman等
IE下的IE DeveloperToolbar,MS Script Debugger等(強烈不推薦MS Script Debugger,安裝之后問題多)
Google Chrome 的JS控制台已經很強大了,Opera的錯誤控制台也可以,Opera蜻蜓和FireBug一樣強大,Safari具有和Chrome一樣的控制台


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM