- 一、什么是C语言
- 二、什么是JavaScript
- 三、什么是Java
- 四、C语言和JavaScript的区别
- 五、Java和JavaScript的区别
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能用简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言可在包含一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
二、什么是JavaScriptJavaScript是一种高级的、解释型、直译式脚本语言,是一种基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果
三、什么是JavaJava是一种可以撰写跨平台应用软件的面向对象的程序设计语言,即使是开发简单的程序,也必须设计对象。
Java是介于解释型和编译型语言之间的一种语言,Java的源代码在传递到客户端执行之前,必须经过编译,通过相应平台上的解释器,实现独立于某个特定的平台编译代码的束缚。
四、C语言和JavaScript的区别- C语言主要是被编译成机器语言,而JavaScript主要是作为脚本被解释器解释执行;
- C语言需要程序员手动管理内存(主要指堆内存的申请和释放),而JavaScript的内存是由解释器来管理的;
- C语言是静态类型语言,即程序运行之前每个变量的数据类型就已经确定,在运行是不能改变,而JavaScript是动态类型语言,变量的数据类型在运行时仍可变化;
- C语言中没有闭包的概念,JavaScript中的函数都与其定义时可访问到的变量组成闭包;
- C语言没有对“类的成员方法”“类的成员的封装(对外不可见)”“类的继承与多态”等面向对象的特性的支持,而JavaScript可以通过原型链和闭包等实现面向对象的继承、多态和封装,实现ECMAScript 2015及以上版本的JavaScript更是在语法层面支持类的定义;
- C语言可以通过调用系统API来实现多线程,可以通过多线程来提高阻塞操作(主要是IO)时的CPU利用率,而JavaScript主要是单线程,JavaScript的可能阻塞的操作都是由JavaScript运行时提供的异步API来完成
数据类型
C语言中有int,char,float等等,而JS中只有let(先忽略var),所以转换过程中遇到C语言中的数据类型要换成let。
除法
C语言中常用一种除法整除取整比如int a = 5/2;结果就是2。而在js中这样计算默认会变成2.5,要达到C语言的写法要改成let a = parseInt(5/2)。
除法取余和C语言一样直接使用%就可以了。
单引号
C语言中的单引号'A'还是数类型的参数,到js中就是字符串了,这里要注意。因为js中的单引号和双引号是一样的效果。
取反
C语言中并没有真正的布尔类型,一般是用0作为假,非0作为真,在if判断时会和数字类型混用,比如:
int hasHouse = 0;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}
如果js也这样写的话,
int hasHouse = 0;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}
最后hasHouse会变成true或者false这样的bool类型,而不像C语言只会在0和1之间变化。js处理这种情况最后把只用作bool的,在js中改成bool类型
int hasHouse = false;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}
五、Java和JavaScript的区别
- 基于对象和面向对象:Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象;JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object-Based)和事件驱动(Event-Driven)的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。
- 解释和编译:Java的源代码在执行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需经过编译,由浏览器解释执行。(目前的浏览器几乎都使用了JIT(即时编译)技术来提升JavaScript的运行效率)
- 强类型变量和类型弱变量:Java采用强类型变量检查,即所有变量在编译之前必须作声明;JavaScript中变量是弱类型的,甚至在使用变量前可以不作声明,JavaScript的解释器在运行时检查推断其数据类型。
- 代码格式不一样。



