天天看點

《JavaScript和jQuery實戰手冊(原書第3版)》---第1章 編寫第一個JavaScript程式 1.1 程式設計簡介

html自身并沒有太多智能:它不能做數學運算,不能判斷某人是否正确填寫了一個表單,而且不能根據web通路者的互動來做出判斷。基本上,html讓人們閱讀文本、觀看圖檔或視訊,并且單擊連結轉向擁有更多文本、圖檔和視訊的下一個web頁面。若要給web頁面添加智能,使其可以對站點的通路者做出響應,則需要使用javascript。

javascript允許web頁面智能地反應。有了它,就可以建立智能的web表單,當通路者忘了包含必需的資訊時,表單可以告知通路者。你可以讓元素顯示、消失,或者在頁面上來回移動(如圖1-1所示)。甚至可以用從web伺服器擷取的資訊來更新web頁面的内容(而不必載入一個新的web頁面)。簡而言之,javascript使得web站點更加動人、高效和有用。

注意 實際上,html5也為html添加了一些智能,包括基本的表單驗證。但是,由于并非所有的浏覽器都支援這些漂亮的功能(以及由于你可以使用表單和javascript實作更多的功能),你仍然需要用javascript來建構最好的、更為使用者友好和互動性的表單。通過ben henick的《html5 forms》(o'reilly)和gaurav gupta的《mastering html5 forms》(packt publishing)可了解關于html5和web表單的更多内容。

《JavaScript和jQuery實戰手冊(原書第3版)》---第1章 編寫第一個JavaScript程式 1.1 程式設計簡介

對于很多人來說,“計算機程式設計”使他們腦海裡浮現出這樣的情景:擁有超常智慧的家夥在鍵盤前彎腰而坐,連續數小時飛快地敲擊着幾乎難以了解的、含混不清的語言。确實,某些程式設計工作就是那樣的。程式設計可能像是非凡之人表演的複雜魔術。雖然很多程式設計概念很難掌握,但是在程式設計語言中,javascript對于非程式員來說算是相對友好的。

然而,javascript比html或css都要複雜,并且,對于web設計者來說,程式設計往往是一個陌生的世界。是以,本書的目标之一是幫助你像一個程式員一樣思考。在本書中,你将學習基本的程式設計概念,不管你是編寫javascript、actionscript,還是使用c++編寫桌面程式,這些概念都适用。更重要的是,你将學習如何完成一個程式設計任務,進而在把javascript添加到web頁面之前,就确切地知道自己想要做什麼。

很多web設計師受到javascript中用到的奇怪符号和單詞的影響而望而卻步。常見的javascript程式中充滿了符号({}[];,()!=)和不熟悉的單詞(var、null、else if)。這看上去就像是一門外語,并且很多時候,學習程式設計語言和學習其他語言很相似。你需要學習新單詞、新标點,并且了解如何把它們組合起來以便成功溝通。

實際上,每種程式設計語言都有它自己的一組關鍵字和字元,以及組合這些關鍵字和字元的一組規則,即語言的文法。我們需要記住javascript語言的單詞和規則(或者至少有一本書在手邊作為參考)。當學習一門新的語言的時候,我們會很快意識到,如果在錯誤的音節加了重音,可能使單詞變得無法了解。同樣,一個簡單的輸入錯誤甚至是遺漏了标點符号,都可能使得javascript程式無法運作,或者在web浏覽器中産生一個錯誤。在開始學習程式設計的時候,我們會犯很多錯誤,這是程式設計的本質導緻的。

首先,你可能會發現用javascript程式設計令人沮喪,你要花很多的時間去找出自己在錄入腳本時所犯的錯誤。此外,你可能會發現剛開始的時候一些和程式設計相關的概念難以了解。但是不要擔心,如果你過去嘗試學習過javascript并且因為它太難而放棄,本書将幫助你越過那些經常絆倒程式設計新手的障礙。(并且,如果你已經有了程式設計經驗,本書将教會你針對web浏覽器程式設計時用到的javascript的特性以及獨特概念。)

此外,本書不隻是介紹javascript,還介紹了jquery——世界上最流行的javascript庫。jquery使複雜的javascript程式設計變得更加容易,而且容易很多。是以,隻需要有一些javascript的知識,再加上jquery的幫助,你将能夠立刻建立進階的、可互動性的web站點。

javascript是一種腳本程式設計語言。這個術語也用來描述php和coldfusion這樣的語言。那麼,什麼是腳本程式設計語言呢?

在計算機上運作的大多數程式都是使用編譯型語言編寫的。編譯是指把程式員編寫的代碼轉換為計算機能夠了解的指令的過程。一旦編譯了程式,就可以在計算機上運作它,既然編譯後的程式已經直接轉換為計算機能夠了解的指令了,那麼,它比腳本程式設計語言所編寫的程式運作得更快。遺憾的是,編譯一個程式是耗費時間的過程,你必須編寫程式,編譯它,然後測試。如果程式不工作,還必須重複整個過程。

另外,腳本程式設計語言隻有在解釋器(這是可以把腳本轉換為計算機能夠了解的内容的另外一個程式)讀取它的時候才編譯。以javascript為例,解釋器内置到web浏覽器中。是以,當web浏覽器把帶有javascript程式的一個web頁面讀入其中的時候,web浏覽器就把javascript翻譯成計算機能夠了解的内容。是以,腳本程式設計語言運作起來比編譯型語言要更慢,因為每次腳本程式運作的時候,都要為計算機進行翻譯。腳本程式設計語言對于web開發者來說是很好的,腳本通常要比桌面程式規模小而且結構沒有那麼複雜,是以,速度上的缺失并不是那麼重要。此外,既然它們不需要編譯,那麼建立和測試使用腳本程式設計語言的程式就是一個較快的過程。

當你為web頁面添加javascript的時候,就是在編寫一個計算機程式。當然,大多數javascript程式要比用來閱讀e-mail、修複照片和建構web頁面的程式簡單得多。即便javascript程式(也叫做腳本)較簡單并且較短,但它們還是具有很多和較複雜的程式相同的屬性。

簡而言之,任何計算機程式都是以指定的順序完成的一系列步驟。假設你想要用web頁浏覽者的名字來顯示一條歡迎消息,例如,“welcome, bob!”。要完成這個任務需要做幾件事情:

詢問通路者的名字。

獲得通路者的響應。

在web頁面上列印(即顯示)消息。

雖然你可能不想在web頁面上顯示一條歡迎消息,但這個例子展示了程式設計的基本過程:确定想要做什麼,然後把任務分解為完成它所必須經過的單獨步驟。每次想要建立一個javascript程式,你必須經曆這個過程來确定實作目标所需的步驟。一旦知道了這些步驟,你就準備好編寫程式了。換句話說,把思路翻譯成程式代碼(單詞和字元),這些代碼讓web浏覽器去做我們想要的事情。

繼續閱讀