深入剖析JavaScript和Java的區(qū)別
你對(duì)JavaScript和Java的區(qū)別是否了解,這里和大家分享一下,JavaScript創(chuàng)作者可以不那么注重程式技巧,所以許多Java的特性在JavaScript中并不支援,同時(shí)兩者卻是兩個(gè)公司開發(fā)的不同的兩個(gè)產(chǎn)品。
JavaScript和Java的區(qū)別
談到JavaScript人們往往會(huì)想起Java了,雖然JavaScript與Java有緊密的聯(lián)系,Java是一種比JavaScript更復(fù)雜許多的程式語(yǔ)言,而JavaScript則是相當(dāng)容易了解的語(yǔ)言。JavaScript創(chuàng)作者可以不那么注重程式技巧,所以許多Java的特性在JavaScript中并不支援,同時(shí)兩者卻是兩個(gè)公司開發(fā)的不同的兩個(gè)產(chǎn)品。
Java是SUN公司推出的新一代面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,特別適合于Internet應(yīng)用程序開發(fā);而JavaScript是Netscape公司的產(chǎn)品,其目的是為了擴(kuò)展NetscapeNavigator功能,而開發(fā)的一種可以嵌入Web頁(yè)面中的基于對(duì)象和事件驅(qū)動(dòng)的解釋性語(yǔ)言,它的前身是LiveScript;而Java的前身是Oak語(yǔ)言。下面對(duì)兩種語(yǔ)言間的異同作如下比較:
1、基于對(duì)象和面向?qū)ο?/strong>
Java是一種真正的面向?qū)ο蟮恼Z(yǔ)言,即使是開發(fā)簡(jiǎn)單的程序,必須設(shè)計(jì)對(duì)。JavaScript是種腳本語(yǔ)言,它可以用來(lái)制作與網(wǎng)絡(luò)無(wú)關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對(duì)象(ObjectBased)和事件驅(qū)動(dòng)(EventDriver)的編程語(yǔ)言。因而它本身提供了非常豐富的內(nèi)部對(duì)象供設(shè)計(jì)人員使用。
2、解釋和編譯
兩種語(yǔ)言在其瀏覽器中所執(zhí)行的方式不一樣。Java的源代碼在傳遞到客戶端執(zhí)行之前,必須經(jīng)過(guò)編譯,因而客戶端上必須具有相應(yīng)平臺(tái)上的仿真器或解釋器,它可以通過(guò)編譯器或解釋器實(shí)現(xiàn)獨(dú)立于某個(gè)特定的平臺(tái)編譯代碼的束縛。JavaScript是一種解釋性編程語(yǔ)言,其源代碼在發(fā)往客戶端執(zhí)行之前不需經(jīng)過(guò)編譯,而是將文本格式的字符代碼發(fā)送給客戶編由瀏覽器解釋執(zhí)行。
3、強(qiáng)變量和弱變量
兩種語(yǔ)言所采取的變量是不一樣的。Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明。如:Integerx;Stringy;x=1234;x=4321;
其中X=1234說(shuō)明是一個(gè)整數(shù),Y=4321說(shuō)明是一個(gè)字符串。JavaScript中變量聲明,采用其弱類型。即變量在使用前不需聲明,而是解釋器在運(yùn)行時(shí)檢查其數(shù)據(jù)類型,如:
x=1234;
y="4321";前者說(shuō)明x為其數(shù)值型變量,而后者說(shuō)明y為字符型變量。
4、代碼格式不一樣
Java是一種與HTML無(wú)關(guān)的格式,必須通過(guò)像HTML中引用外媒體那么進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨(dú)立的文檔中。
JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動(dòng)態(tài)裝載。編寫HTML文檔就像編輯文本文件一樣方便。
5、嵌入方式不一樣
在HTML文檔中,兩種編程語(yǔ)言的標(biāo)識(shí)不同,JavaScript使用<Script>....</Script>來(lái)標(biāo)識(shí),而Java使用<applet>….</applet>來(lái)標(biāo)識(shí)。
6、靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編
Java采用靜態(tài)聯(lián)編,即Java的對(duì)象引用必須在編譯時(shí)的進(jìn)行,以使編譯器能夠?qū)崿F(xiàn)強(qiáng)類型檢查。
JavaScript采用動(dòng)態(tài)聯(lián)編,即JavaScript的對(duì)象引用在運(yùn)行時(shí)進(jìn)行檢查,如不經(jīng)編譯則就無(wú)法實(shí)現(xiàn)對(duì)象引用的檢查。
【編輯推薦】
- Javascript中split函數(shù)用法指導(dǎo)手冊(cè)
- 基本JavaScript數(shù)據(jù)類型解析
- JavaScript數(shù)組元素刪除問(wèn)題解決方案
- JavaScript調(diào)試工具解決IE6等多版本共存問(wèn)題
- 解析Javascript中replace()方法使用