區(qū)別:1、C語(yǔ)言主要是被編譯成機(jī)器語(yǔ)言,JavaScript主要是作為腳本被解釋器解釋執(zhí)行;2、C語(yǔ)言的內(nèi)存需要程序員手動(dòng)管理,而JS的內(nèi)存是由解釋器來(lái)管理的;3、C語(yǔ)言是靜態(tài)類型語(yǔ)言,JS是動(dòng)態(tài)類型語(yǔ)言;4、JS中有閉包,而C語(yǔ)言中沒(méi)有。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5&&c99版、Dell G3電腦。
什么是C語(yǔ)言?
C語(yǔ)言是一門面向過(guò)程、抽象化的通用程序設(shè)計(jì)語(yǔ)言,廣泛應(yīng)用于底層開(kāi)發(fā)。C語(yǔ)言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語(yǔ)言是僅產(chǎn)生少量的機(jī)器語(yǔ)言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語(yǔ)言。
什么是JavaScript?
JavaScript是一種高級(jí)的、解釋型、直譯式腳本語(yǔ)言,是一種基于原型、函數(shù)先行的語(yǔ)言,是一門多范式的語(yǔ)言,它支持面向?qū)ο缶幊?,命令式編程,以及函?shù)式編程。
c語(yǔ)言與javascript的相同點(diǎn):
某些詞法、語(yǔ)法相同。JavaScript的詞法語(yǔ)法的設(shè)計(jì)是參考Java的,而Java的詞法語(yǔ)法的設(shè)計(jì)是參考C的。我想到的JavaScript、Java、C++和C都相同的詞法、語(yǔ)法有:
1、把單個(gè)等號(hào)作為賦值運(yùn)算符而不是相等判斷運(yùn)算符,如:a=b+1代表“把變量b+1的結(jié)果賦予變量a”,而不是“變量a的值與變量b+1的值相等”;
2、賦值運(yùn)算是一個(gè)表達(dá)式,可以作為一個(gè)值參與其他運(yùn)算,如:(a=b+1)>10;
3、語(yǔ)句以分號(hào)結(jié)束;
4、以“0x”開(kāi)頭來(lái)表示十六進(jìn)制數(shù);
5、以“&”“|”“^”“!”“&&”“||”分別作為按位與、按位或、按位異或、邏輯非、邏輯與、邏輯或運(yùn)算的運(yùn)算符;
6、以問(wèn)號(hào)和冒號(hào)組成的三目運(yùn)算符;
7、乘除運(yùn)算符、加減運(yùn)算符、比較運(yùn)算符、邏輯與邏輯或運(yùn)算符、賦值運(yùn)算符的優(yōu)先級(jí)順序;
8、函數(shù)調(diào)用的語(yǔ)法為“函數(shù)名(參數(shù)1, 參數(shù)2, …)”;
9、代碼塊放在大括號(hào)內(nèi);
10、if、for、while、do-while、switch-case、break的語(yǔ)法;……
c語(yǔ)言與javascript的區(qū)別:
1、C語(yǔ)言主要是被編譯成機(jī)器語(yǔ)言,而JavaScript主要是作為腳本被解釋器解釋執(zhí)行;
2、C語(yǔ)言需要程序員手動(dòng)管理內(nèi)存(主要指堆內(nèi)存的申請(qǐng)和釋放),而JavaScript的內(nèi)存是由解釋器來(lái)管理的;
3、C語(yǔ)言是靜態(tài)類型語(yǔ)言,即程序運(yùn)行之前每個(gè)變量的數(shù)據(jù)類型就已經(jīng)確定,在運(yùn)行時(shí)不能改變,而JavaScript是動(dòng)態(tài)類型語(yǔ)言,變量的數(shù)據(jù)類型在運(yùn)行時(shí)仍可變化;
4、C語(yǔ)言中沒(méi)有閉包的概念,JavaScript中的函數(shù)都與其定義時(shí)可訪問(wèn)到的變量組成閉包;
5、C語(yǔ)言沒(méi)有對(duì)“類的成員方法”“類的成員的封裝(對(duì)外不可見(jiàn))”“類的繼承與多態(tài)”等面向?qū)ο蟮奶匦缘闹С?,而JavaScript可以通過(guò)原型鏈和閉包等實(shí)現(xiàn)面向?qū)ο蟮睦^承、多態(tài)和封裝,實(shí)現(xiàn)ECMAScript 2015及以上版本的JavaScript更是在語(yǔ)法層面支持類的定義;
6、C語(yǔ)言可以通過(guò)調(diào)用系統(tǒng)API來(lái)實(shí)現(xiàn)多線程,可以通過(guò)多線程來(lái)提高阻塞操作(主要是IO)時(shí)的CPU利用率,而JavaScript主要是單線程,JavaScript的可能阻塞的操作都由JavaScript運(yùn)行時(shí)提供的異步API來(lái)完成