[技術分享] javascript與java的不同之處

 作者:網絡  發布于:2017-06-27  瀏覽數:

先聲明一點,JavaScript和Java從名字上看雖然很像,但不是同一種語言。

講個故事:話說很久很久以前,有一個叫網景(Netscape)的,十月懷胎,他生了個兒子,很開興,給兒子取名livescript。Livescript很勤奮,幫大叔大嬸干了好多活,也給他爸賺了很多錢。突然一天sun生了個兒子:java,java很厲害,人氣鼎盛,隱隱有登上王位的態勢。他爸眼珠子一轉,就想:java這是要上天啊,我得趁機發一筆!于是,他叫來兒子,嘴角一翹,露出一個意味深長的笑容,說到“兒子,你看java的名字多炫酷,以后你就跟他姓了。”于是,從此JavaScript便這樣出現在了大家面前,大叔大嬸都在背后議論:“哎,這不會是隔壁java的私生子吧,要不叫他來幫我們干活試試”,就這樣JavaScript改名字后,日子過得還可以,接了不少活。老網景看著他兒子,一邊數錢一邊開心的笑笑,為自己的英明沾沾自喜“哈哈,只是改了個名字而已,效果居然不錯,java果然厲害。得讓兒子稍微學著點java兄,至少是在外表的衣著裝扮上面,里面還是得流著我老網的血。”

這就是JavaScript和Java為什么名字很像的原因,雖然名字很像但是本質上區別大了去了。

二者的區別體現在:

  1. 它們是兩個公司開發的不同的兩個產品,Java是SUN公司推出的新一代面向對象的程序設計語言,特別適合于Internet應用程序開發,而JavaScript是Netscape公司的產品,其目的是為了擴展Netscape Navigator功能,而開發的一種可以嵌入Web頁面中的基于對象和事件驅動的解釋性語言。
  2. JavaScript是基于對象的,而Java是面向對象的,即Java是一種真正的面向對象的語言,即使是開發簡單的程序,必須設計對象。JavaScript是種腳本語言,它可以用來制作與網絡無關的,與用戶交互作用的復雜軟件。它是一種基于對象和事件驅動的編程語言。因而它本身提供了非常豐富的內部對象供設計人員使用。
  3. 兩種語言在其瀏覽器中所執行的方式不一樣。Java的源代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立于某個特定的平臺編譯代碼的束縛。JavaScript是一種解釋性編程語言,其源代碼在發往客戶端執行之前不需經過編譯,而是將文本格式的字符代碼發送給客戶,由瀏覽器解釋執行。
  4. 兩種語言所采取的變量是不一樣的。Java采用強類型變量檢查,即所有變量在編譯之前必須作聲明。JavaScript中變量聲明,采用其弱類型。即變量在使用前不需作聲明,而是解釋器在運行時檢查其數據類型。
  5. 代碼格式不一樣。Java是一種與HTML無關的格式,必須通過像HTML中引用外媒體那么進行裝載,其代碼以字節代碼的形式保存在獨立的文檔中。JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態裝載。編寫HTML文檔就像編輯文本文件一樣方便。 第六,嵌入方式不一樣。在HTML文檔中,兩種編程語言的標識不同,JavaScript使用 <script>...</script> 來標識,而Java使用<applet> ... </applet>來標識。
  6. 靜態綁定和動態綁定。Java采用靜態聯編,即Java的對象引用必須在編譯時的進行,以使編譯器能夠實現強類型檢查。JavaScript采用動態聯編,即JavaScript的對象引用在運行時進行檢查,如不經編譯則就無法實現對象引用的檢查。

語言特點:

弱類型:

JavaScript在變量聲明的時候并不嚴格區分數據類型,(var 變量名),不像java那樣嚴格(類型:變量名)。也就說,Javascript視眾生平等,在他眼里大家都是人,而在java眼里眾生皆有不同,男人、女人、人妖什么的……

基于這個特性,javascript在很多時候會都可以寫的比java簡潔,比如函數的聲明等。

動態語言:

java在定義了一個數組的長度以后就不能再改變了,但是javascript卻可以。并且java一個數組只能放同一種類型,但javascript可以在一個數組內加不同數據類型的數據。可以說Java比較死心眼,javascript則比較靈活。

腳本語言:

Java等后臺語言都是編譯后執行的,但是javascript卻是邊編譯邊執行。

數據類型

基礎數據類型:

Java有八大數據類型:byte,short,int,long,float,double,char,Boolean。感覺javascript把上面的整理成了三種原始類型:number,string,boolean。另外還有兩個特殊的原始類型是:null和undefined。

變量

Java:數據類型 變量名=值;

Javascript:var 變量名=值;數組

Java:

  類型[] 數組名=new 類型[數量];

  類型[] 數組名=new 類型[]{元素1,元素2…};

Javascript:

  var 數組名=[];

var 數組名=new Array();

函數:

Java:返回值類型 函數名(類型 參數1,類型 參數2…){}

Javascript:function 函數名(參數1,參數2…){}

相關文章

三期必中一期平特肖