1、JS面向对象,C面向过程。

面向过程可以理解为一个很全能的类什么活都包揽了,而面向对象是有很多各司其职的类,每个类都很专一。通常应用层的软件开发使用面向对象编程,因为老板时常会提出新的需求,如果是面向过程则要重新改一整个类,功能复杂的时候很头疼,而面向对象则只需改动一个小类就可以,非常灵活,扩展性强,时刻迎接着变化。而像单片机开发这种实现的功能明确,任务专一,则使用面向过程编程简单一点。

2、JS声明变量时无需确定数据类型

JS在实现简单功能时一个var声明变量就可以,C的话用先定义数据类型为int、char、float、double等。(JS还有let和const可以声明变量,let可以改变作用域,const定义常量)

3、JS是解释型语言,C是编译型语言

编译型语言会经过编译器,将所有源代码转换为二进制指令(机器语言),即生成一个可执行文件;由于每个OS的内核不同,自然可执行文件内部结构也不同,所以编译型语言不能跨平台。
解释型语言会经过解释器转换为二进制指令,但不是一次性将所有代码转换,它是一边执行一边转换,即不会生成可执行文件;由于官方要求不同OS的解释器都要做成同样代码实现同样功能,所以感谢解释器屏蔽了不同OS的差异,解释型语言可以跨平台。