您好,欢迎访问一九零五行业门户网

c与javascript的区别有哪些

区别:1、c语言需要手动管理内存,而javascript的内存是由解释器来管理的;2、c语言是静态类型语言,而javascript是动态类型语言;3、js中有闭包,c语言中没有;4、c语言是编译型语言,而javascript是解释性语言。
本教程操作环境:windows7系统、javascript1.8.5&&c99版、dell g3电脑。
c语言和javascript的区别
1、c语言需要程序员手动管理内存(主要指堆内存的申请和释放),而javascript的内存是由解释器来管理的;
2、c语言是静态类型语言,即程序运行之前每个变量的数据类型就已经确定,在运行时不能改变,而javascript是动态类型语言,变量的数据类型在运行时仍可变化;
3、c语言中没有闭包的概念,javascript中的函数都与其定义时可访问到的变量组成闭包;
4、c语言可以通过调用系统api来实现多线程,可以通过多线程来提高阻塞操作(主要是io)时的cpu利用率,而javascript主要是单线程,javascript的可能阻塞的操作都由javascript运行时提供的异步api来完成。
5、c语言是编译型语言,而javascript是解释性语言。c语言主要是被编译成机器语言,而javascript主要是作为脚本被解释器解释执行;
从静态类型还是动态类型来看
静态类型,编译的时候就能够知道每个变量的类型,编程的时候也需要给定类型,如java中的整型int,浮点型float等。c、c++、java都属于静态类型语言。
动态类型,运行的时候才知道每个变量的类型,编程的时候无需显示指定类型,如javascript中的var、php中的$。javascript、ruby、python都属于动态类型语言。
静态类型还是动态类型对语言的性能有很大影响。
对于静态类型,在编译后会大量利用已知类型的优势,如int类型,占用4个字节,编译后的代码就可以用内存地址加偏移量的方法存取变量,而地址加偏移量的算法汇编很容易实现。
对于动态类型,会当做字符串通通存下来,之后存取就用字符串匹配。
从编译型还是解释型来看
编译型语言,像c、c++,需要编译器编译成本地可执行程序后才能运行,由开发人员在编写完成后手动实施。用户只使用这些编译好的本地代码,这些本地代码由系统加载器执行,由操作系统的cpu直接执行,无需其他额外的虚拟机等。
源代码=》抽象语法树=》中间表示=》本地代码
解释性语言,像javascript、python,开发语言写好后直接将代码交给用户,用户使用脚本解释器将脚本文件解释执行。对于脚本语言,没有开发人员的编译过程,当然,也不绝对。
源代码=》抽象语法树=》解释器解释执行。
【推荐学习:javascript高级教程】
以上就是c与javascript的区别有哪些的详细内容。
其它类似信息

推荐信息