Java這個前綴的暗示使得人們總是會把JavaScript和Java連結起來,認為JavaScript是Java的一個子集或者是一個功能差於Java的一個版本。似乎JavaScript這個名字就是有意造成一種混淆,而這種混淆帶來了後來的誤解。 JavaScript不被解釋成Java,Java就是Java。而JavaScript則是另一種不同的程式語言。
JavaScript的語法和Java相類似,這就像Java和C類似一樣。但是,JavaScript並不是Java的一個子集就像Java不是C的子集。 JavaScript在應用程式方面比Java(Oak)當初所打算的表現更好。
JavaScript並不是在Java的誕生地點-Sun Microsystems公司,被開發出來的,而是在Netscape(網景)被開發出來的。它最初被叫做LiveScript,而這個名字並沒有讓人們很迷惑。
Script這個後綴的暗示,說明JavaScript不是一種真正的“程式語言”,作為一門腳本語言和程式語言相比,還是有差距的。但是,這的確是一個專業化的問題。和C語言相比,JavaScript透過犧牲表現而換取更豐富的表達能力和動態性。
JavaScript的類別C 語法,包括花括號和笨重的for語句,使得它看起來更像是一種普通的過程式的語言。這是一種誤導,因為和C 或 Java相比,JavaScript 和 函數式語言——例如 Lisp 和 Scheme,有著更多的相似之處。它用數組代替列表,用物件代替屬性列表。函數是第一個類型,函數可以有閉包。你不需要去平衡所有的這些圓括號,就可以使用匿名函數。
JavaScript最初的設計是運行在Netscape Navigator上的。它的成功使它事實上成為了所有網頁瀏覽器的標準配置。這就造成了語言類型的定型。可以說,JavaScript就是程式語言中的 George Reeves(註:美國演員,因扮演「超人」而出名,導致被定型,而無法接演其他角色)。 JavaScript也適用於許多和網頁無關的應用程式。
JavaScript的第一個版本相當的弱。它缺少異常處理、內部函數、繼承。就它現在的形式而言,它已經是一門完整的物件導向的程式語言了。但是,針對這門語言的許多觀點都是基於它不成熟的形式而引發的。
負責管理這門語言的ECMA委員會正在開發擴展,這本是出於好意,但這也加劇了一個更大的問題:版本變得越來越多。而這造成了更多的困擾。
沒有任何程式語言是完美的。 JavaScript也有它本身設計錯誤,例如重載表示相加和附帶類型轉換的字串連接兩個意義,易錯的with語句也應該避免使用。保留字詞策略過於嚴格。分號的嵌入也是一個巨大的錯誤,正規表示式的符號也是一樣。這些錯誤會導致程式設計錯誤,同時將語言的設計視為一個整體質疑。幸運地是,這些問題中的許多問題可以用一個非常好的 Lint 程式來緩和。
這個語言的設計整體上是相當健全的。令人驚訝地是,ECMAScript委員會似乎對於糾正這些錯誤並不感興趣。也許,他們對創造一個新的語言更感興趣吧。 (註:這裡應該是作者的調侃語)。
JavaScript早期的一些實作可謂是錯誤百出。這一點反映在語言上。更糟地是,這些實作被嵌入了更錯誤百出的web瀏覽器中。
幾乎所有關於JavaScript的書都相當糟糕。它們充滿了錯誤,不恰當的例子,和沒什麼幫助的練習。這門語言中的重要特性被糟糕地解釋,或被完全忽略。我修訂過很多關於JavaScript的書籍,但我只推薦一本:《JavaScript權威指南(第五版)》——作者:David Flanagan。 (作者語:如果你寫了一本很好的書,請寄一本贈閱本給我。)
Javascript影片教學】
以上是JavaScript:世界上最被誤解的語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!