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