我還記得第一次接觸Java的時候,有一天突然看到JavaScript,我的第一反應(yīng)是:這是什么?跟Java這么相似,是不是有什么隱藏的關(guān)系?那么Java和JavaScript有什么區(qū)別呢?
從他們出生開始:
1994 年,Netscape 發(fā)布了第 9 版 Navigator 瀏覽器0.9。這是史上第一款比較成熟的網(wǎng)頁瀏覽器,轟動一時。但是,這個版本的瀏覽器只能用于瀏覽,不具備與訪問者交互的能力。因此,Netscape 迫切需要一種允許瀏覽器與網(wǎng)頁交互的網(wǎng)絡(luò)腳本語言。 1995年,Sun將Oak語言改為Java,正式推向市場,打出“Write once, run anywhere”的口號。 Netscape 非常看好 Java,決定與 Sun 結(jié)成聯(lián)盟。僅僅一個月后,Netscape 決定未來的 Web 腳本語言必須看起來與 Java 足夠相似,但比 Java 更簡單。程序員 Brendan Eich 被任命為這種“簡化 Java 語言”的設(shè)計者。
但是 Brendan Eich 對 Java 完全沒有興趣,他在 10 天內(nèi)設(shè)計了 JavaScript。總體設(shè)計思路是:(1)借鑒了C語言的基本語法;(2)借鑒了Java語言的數(shù)據(jù)類型和內(nèi)存管理;(3)借鑒了Scheme語言,以及將函數(shù)升級為“頭等艙”(first class)的狀態(tài);(4)借用了Self語言,使用了基于原型的繼承機(jī)制。也就是說,Java Script在設(shè)計時引用的對象做不包括Java,但包括Self和Scheme這樣的語言,其實是函數(shù)式編程和面向?qū)ο缶幊田L(fēng)格的混合體。而javascript的原名不是javascript,而是LiveScript,名字中的“Java”是獲得 SUN Microsystems 許可后。
簡單地說,java 和 JavaScript 是兩種不同的語言。
1 語言特點:
1.1 弱類型:
JavaScript在聲明變量時并沒有嚴(yán)格區(qū)分?jǐn)?shù)據(jù)類型,(var變量名),不如java嚴(yán)格(類型:變量名)。換句話說,在Javascript面前一切都是平等的。在他眼里,每個人都是人,但在java中就不一樣了,男人、女人等等……
基于這個特性,javascript在很多情況下可以比java寫得更簡潔,比如函數(shù)聲明。
1.2 動態(tài)語言:
Java 無法在定義數(shù)組后更改其長度,但 JavaScript 可以。而且java的數(shù)組只能放相同類型的數(shù)據(jù),而javascript可以在數(shù)組中加入不同數(shù)據(jù)類型的數(shù)據(jù)。可以說Java更無情,而javascript更靈活。
1.3 腳本語言:
Java等后臺語言是編譯執(zhí)行的,但是JavaScript是邊編譯邊執(zhí)行的。
2 數(shù)據(jù)類型
2.1 底層數(shù)據(jù)類型:
Java 有八種數(shù)據(jù)類型:byte、short、intlong、float、double、char、Boolean。感覺javascript把上面組織成三種原始類型:數(shù)字、字符串和布爾值。還有兩種特殊的原始類型:null 和 undefined。
2.2 變量
Java:數(shù)據(jù)類型 變量名=值;
Javascript:var 變量名=值;數(shù)組
Java:
類型[] 數(shù)組名=new 類型[數(shù)量];
類型[] 數(shù)組名=new 類型[]{元素1,元素2…};
Javascript:
var 數(shù)組名=[];
var 數(shù)組名=new Array();
3 函數(shù):
Java:返回值類型 函數(shù)名(類型 參數(shù)1,類型 參數(shù)2…){}
Javascript:function 函數(shù)名(參數(shù)1,參數(shù)2…){}
兩者用途
java 廣泛應(yīng)用于個人 PC、數(shù)據(jù)中心、游戲機(jī)、科學(xué)超級計算機(jī)、手機(jī)和互聯(lián)網(wǎng)。
Javascript的目的是:1.在HTML頁面中嵌入動態(tài)文本;2.響應(yīng)瀏覽器事件; 3.讀取和寫入HTML元素;4.在數(shù)據(jù)中驗證數(shù)據(jù),然后再提交給服務(wù)器; 5.檢測訪問者的瀏覽器信息; 6.控制 cookie,包括創(chuàng)建和修改。
以上就是Java和JavaScript有什么區(qū)別的介紹,如果你在學(xué)習(xí)java的過程中存在疑問,可以關(guān)注千鋒教育技術(shù)干貨欄目,也可以咨詢我們的客服老師。更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。