JavaScript 和 C 的区别: 1,JavaScript 是动态类型语言, C 是静态类型语言. 2,JavaScript 是解释型语言, C 是编译型语言.
JavaScript 与 c 的区别介绍:
从静态类型还是动态类型来看:
C 是静态类型, 编译的时候就能够知道每个变量的类型, 编程的时候也需要给定类型, 如整型 int, 浮点型 float 等.
JavaScript 是动态类型, 运行的时候才知道每个变量的类型, 编程的时候无需显示指定类型.
静态类型还是动态类型对语言的性能有很大影响.
对于静态类型, 在编译后会大量利用已知类型的优势, 如 int 类型, 占用 4 个字节, 编译后的代码就可以用内存地址加偏移量的方法存取变量, 而地址加偏移量的算法汇编很容易实现.
对于动态类型, 会当做字符串通通存下来, 之后存取就用字符串匹配.
从编译型还是解释型来看:
C 是编译型语言, 需要编译器编译成本地可执行程序后才能运行, 由开发人员在编写完成后手动实施. 用户只使用这些编译好的本地代码, 这些本地代码由系统加载器执行, 由操作系统的 CPU 直接执行, 无需其他额外的虚拟机等.
源代码 =》抽象语法树 =》中间表示 =》本地代码.
JavaScript 是解释性语言, 开发语言写好后直接将代码交给用户, 用户使用脚本解释器将脚本文件解释执行. 对于脚本语言, 没有开发人员的编译过程, 当然, 也不绝对.
源代码 =》抽象语法树 =》解释器解释执行.
对于 JavaScript, 随着 Java 虚拟机 JIT 技术的引入, 工作方式也发生了改变. 可以将抽象语法树转成中间表示 (字节码), 再转成本地代码, 如 JavaScriptCore, 这样可以大大提高执行效率. 也可以从抽象语法树直接转成本地代码.
来源: http://www.css88.com/qa/javascript/11791.html