還記得剛開始學(xué)習(xí)編程時,我就在想:“Java和JavaScript是同一種語言嗎?”。就是因為看到它們名稱中都帶“java”,所以才會誤以為它們有關(guān)系。實際上,它們并沒有太大的聯(lián)系。
這兩者的關(guān)系,就和英語與斯瓦希里語「非洲語言使用人口最多的語言之一,簡稱斯語」類似。兩者都是語言,但是語法、用詞甚至語音都完全不同。與英語和斯語相比,Java和JavaScript的區(qū)別其實更大。英語和斯語是大部分人日常互相交流溝通的語言。但是,java和JavaScript是計算機(jī)語言,具有不同的交流方式。
>>不同之處
1、命名
JavaScript是由Netscape公司設(shè)計實現(xiàn)而成的。JavaScript最初被稱為Mocha,然后更名為LiveScript。Netscape公司與Sun公司合作,Netscape高層希望它看上去能夠像Java,因此才取名為JavaScript。其實JavaScript走的一直是依靠大IP普及的營銷策略,正如一開始我們所疑惑的地方一樣,JavaScript就是依靠類似java的名稱才被大眾所熟知。就是靠著這一點,現(xiàn)在JavaScript已經(jīng)是世界上第三流行的語言,并且人氣還在不斷上升。
Java是由Oracle公司(以前由Sun Microsystems)提供支持。而Java最初被稱為Oak,然后更名為Green,后來才改成當(dāng)前的名稱Java。而java雖說是使用最廣泛的語言之一,但近年來人氣卻在緩慢下降。
2、應(yīng)用范圍
Java具有極廣的通用性,幾乎在任何地方都可以使用;而JavaScript主要用于帶有一些牽引服務(wù)器端「Node」,移動端「React Native」和桌面端「Electron」的前端Web開發(fā)。
3、語言特性
JavaScript是一種腳本語言,很多知名的瀏覽器都對Js有非常良好的本地支持,所以它成為了最受歡迎的前端語言之一;而Java是一種面向?qū)ο蟮母呒壘幊陶Z言,不適合作前端開發(fā)。
4、基于對象和面向?qū)ο?/div>
Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。它是一種真正的面向?qū)ο?Object Oriented)的語言,即便是開發(fā)簡單的程序,也必須設(shè)計對象。
JavaScript是一種網(wǎng)絡(luò)腳本語言,常用來為網(wǎng)頁添加各式各樣的動態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。它可以使網(wǎng)頁具有交互性;并提供及時反饋節(jié)省用戶時間;還可以根據(jù)用戶的操作,動態(tài)的創(chuàng)建頁面。它是一種基于對象(Object Based)和事件驅(qū)動(Event Driver)的編程語言。
5、解釋和編譯
Java是一種編譯語言,即Java代碼被轉(zhuǎn)換為在語言虛擬機(jī)中執(zhí)行字節(jié)碼。Java的源代碼在執(zhí)行之前,必須經(jīng)過編譯。
JavaScript是一種解釋性編程語言,其源代碼不需經(jīng)過編譯,由瀏覽器解釋執(zhí)行。(目前的瀏覽器幾乎都使用了JIT(即時編譯)技術(shù)來提升JavaScript的運行效率)
6、檢測代碼
Java是強(qiáng)類型的靜態(tài)語言,每個變量必須預(yù)先指定其類型。JavaScript是弱類型的動態(tài)語言,其變量可以根據(jù)賦值而改變類型,如:var s=10;那么s為int型。JavaScript使用動態(tài)類型檢查,即它是在執(zhí)行JavaScript代碼時檢查變量的類型。這樣做有一個好處就是可以使程序員更容易編碼。而Java使用靜態(tài)類型檢查,即它是在編譯時驗證變量的類型。也就是說,它要檢測的錯誤代碼更少!
7、代碼格式
JavaScript與Java代碼格式不一樣。JavaScript的代碼是一種文本字符格式,可以直接嵌入HTML文檔中,并且可動態(tài)裝載。Java是一種與HTML無關(guān)的格式,必須通過像HTML中引用外媒體那樣進(jìn)行裝載,其代碼以字節(jié)代碼的形式保存在獨立的文檔中,其獨立文件的格式為*.class。
8、線程
JavaScript不支持多線程,因為瀏覽器中的JavaScript解釋器是單線程的。而Java則支持多線程。
9、圖文操作
Java可以直接對文本和圖形進(jìn)行操作。而JavaScript是通過在Web頁面中與HTML元素組合來發(fā)揮作用的,但JaveScrit可以控制瀏覽器,讓瀏覽器直接對文本和圖形進(jìn)行處理。
10.工作機(jī)會
Java比JavaScript有更多的工作機(jī)會。根據(jù)數(shù)據(jù),在中國Java開發(fā)發(fā)布了21094個職位,而JavaScript開發(fā)只發(fā)布了8486個職位。相比較而言,Java更適合你尋找工作。
了解java和JavaScript的不同之處,其實并沒有其他的意義,重要的是要通過清楚他們不同之處,明白什么時候更適合用JavaScript,而哪些情況下則使用java。
那么,什么時候使用JavaScript和Java?
舉個例子來說,如何用java和JavaScript的方法實現(xiàn)讓孩子跳躍的操作?
按Java的方法:因為孩子聽不懂“跳”,所以你要在他大腦的部分區(qū)域插入了一個控制跳躍功能的電極裝置。當(dāng)電極沖擊大腦時,他就會不由自主地跳動。機(jī)器可以將你的指令轉(zhuǎn)化為腦信號,你只需要將其安裝在他身上,不需要借助其他的東西,就可以控制他完成“跳躍”動作。
按JavaScript的方法:實現(xiàn)“跳躍”,其實只要教孩子如何跳躍。教完以后,當(dāng)你說“跳”時,他便知道要開始跳了。所以在JavaScript中,主要的還是你需要教他如何理解“跳”一詞。畢竟程序必須先知道如何解釋命令才能執(zhí)行。
回到我們的示例當(dāng)中,除了本身無法在大腦中插入電極裝置以外,將機(jī)器安裝在人身上,讓他遵循命令的行為是非常不可取的。而如果你教他理解命令,這樣的話,下次他一聽到這個命令,就能在沒有其他東西輔助的情況下工作。
人是如此,計算機(jī)亦是。為什么一直在強(qiáng)調(diào)解釋型的重要性,主要還是因為這樣相比較而言更容易編寫,但并不是所有時間都要使用JavaScript。
平日里遇到要用java或JavaScript進(jìn)行編寫時,我個人的建議是,JavaScript固然十分好用,但一定要是自律性很高的人才更適用,因為,當(dāng)你需要維護(hù)混亂無規(guī)則的JavaScript代碼時,就會發(fā)現(xiàn),那簡直是一場噩夢。所以,我還是建議你優(yōu)先使用java來編寫程序。因為,日常工作當(dāng)中,你大可使用java編寫不受限的程序瀏覽器。
凡事都有局限性,了解了java和JavaScript的不同之處,分清他們具體使用的時機(jī),你就會更有效的完成手頭工作。
好啦,關(guān)于java和JavaScript不同之處的介紹就到此結(jié)束了。感謝你的閱讀!一味地在網(wǎng)絡(luò)上尋求學(xué)習(xí)方式和工作技巧,是不足以靜下心來完成學(xué)習(xí)和工作的。放下手機(jī),著手開始執(zhí)行你制定好的計劃,相信自己一定會成功的。
(責(zé)任編輯:代碼如詩) |