首页 >web前端 >前端问答 >c与javascript的区别有哪些

c与javascript的区别有哪些

青灯夜游
青灯夜游原创
2021-11-03 15:07:434050浏览

区别:1、C语言需要手动管理内存,而JavaScript的内存是由解释器来管理的;2、C语言是静态类型语言,而JavaScript是动态类型语言;3、JS中有闭包,C语言中没有;4、C语言是编译型语言,而JavaScript是解释性语言。

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的区别有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn