1、JS面向?qū)ο?,C面向過程。
面向過程可以理解為一個(gè)很全能的類什么活都包攬了,而面向?qū)ο笫怯泻芏喔魉酒渎毜念悾總€(gè)類都很專一。通常應(yīng)用層的軟件開發(fā)使用面向?qū)ο缶幊?,因?yàn)槔习鍟r(shí)常會(huì)提出新的需求,如果是面向過程則要重新改一整個(gè)類,功能復(fù)雜的時(shí)候很頭疼,而面向?qū)ο髣t只需改動(dòng)一個(gè)小類就可以,非常靈活,擴(kuò)展性強(qiáng),時(shí)刻迎接著變化。而像單片機(jī)開發(fā)這種實(shí)現(xiàn)的功能明確,任務(wù)專一,則使用面向過程編程簡(jiǎn)單一點(diǎn)。
2、JS聲明變量時(shí)無需確定數(shù)據(jù)類型
JS在實(shí)現(xiàn)簡(jiǎn)單功能時(shí)一個(gè)var聲明變量就可以,C的話用先定義數(shù)據(jù)類型為int、char、float、double等。(JS還有l(wèi)et和const可以聲明變量,let可以改變作用域,const定義常量)
3、JS是解釋型語言,C是編譯型語言
編譯型語言會(huì)經(jīng)過編譯器,將所有源代碼轉(zhuǎn)換為二進(jìn)制指令(機(jī)器語言),即生成一個(gè)可執(zhí)行文件;由于每個(gè)OS的內(nèi)核不同,自然可執(zhí)行文件內(nèi)部結(jié)構(gòu)也不同,所以編譯型語言不能跨平臺(tái)。
解釋型語言會(huì)經(jīng)過解釋器轉(zhuǎn)換為二進(jìn)制指令,但不是一次性將所有代碼轉(zhuǎn)換,它是一邊執(zhí)行一邊轉(zhuǎn)換,即不會(huì)生成可執(zhí)行文件;由于官方要求不同OS的解釋器都要做成同樣代碼實(shí)現(xiàn)同樣功能,所以感謝解釋器屏蔽了不同OS的差異,解釋型語言可以跨平臺(tái)。