JavaScript之语言特性
来源:互联网 发布:2017最新网络诈骗 编辑:程序博客网 时间:2024/05/17 05:59
JavaScript之语言特性
- JavaScript之语言特性
- 解释性
- 动态性弱类型
- 单线程
- 基于原型的面向对象语言
- 小结
JavaScript是一门在浏览器中运行的脚本语言,最初设计这门语言是用作表单的验证,且与Java并没有什么关系。JS是一门解释性的、动态的、弱类型、单线程、基于原型的面向对象语言。
解释性
高级语言要经过“翻译”才能被机器所执行,“翻译”有编译和解释两种方式。编译是指在程序执行前将代码编译成机器语言文件,且以后运行时无需再次编译,所以编译型语言的程序执行效率高。
而解释性语言则是在程序运行时才进行“翻译”,每次执行都需要重新翻译一次,效率相对较低。
动态性、弱类型
所谓的动态类型语言,是指变量的类型需要在运行时才能确定,反之则是强类型的静态语言,如Java。由于动态性,JS代码的编写极为灵活,但JS也由于动态性而被广为诟病:debug困难、无法编译成二进制文件、性能差等问题。因此也诞生了TypeScript。
也正是因为JavaScript是弱类型、解释性的语言,所以浏览器内核在执行JS的时候存在一个重优化的过程,如图:
单线程
JS是一种单线程语言,所有任务都在一个线程上完成。因此如果某段JS代码执行耗时较长会导致UI动画卡帧,甚者会使浏览器“无响应”,因为线程一直在跑JS,无暇响应用户的行为。
基于原型的面向对象语言
基于类的面向对象的语言,比如Java 和 C++,是建立在两种截然不同的实体概念上的:类和实例。JavaScript 是一个原形继承的语言,并且不会有这种区别:它只有对象。
小结
在很多人眼里,依旧没有把JavaScript当作一门正经的编程语言,上面提到的JavaScript 特性缺点也一直为人诟病。比如知乎上有话题是这样的:
某回复是这样的:
然而,不管你承认与否,JS正在改变世界。
阅读全文
0 0
- JavaScript之语言特性
- JavaScript 语言特性
- JavaScript 语言特性
- JavaScript 语言特性
- JavaScript 语言特性
- JavaScript 语言特性
- JavaScript语言特性
- JavaScript语言特性
- javascript特性之:封装
- 跨越边界: JavaScript 语言特性
- 跨越边界: JavaScript 语言特性
- 浅谈JavaScript的语言特性
- 浅谈JavaScript的语言特性
- 浅谈JavaScript的语言特性
- PHP5.3新特性之语言特性
- PHP5.3新特性之语言特性
- 体验javascript之“变态”特性
- 体验javascript之“变态”特性
- OpenCV-Python—图像梯度和Canny边缘检测
- 图片服务器的实现nginx+vsftpd
- 15 个常用的 SQL Server 高级语法
- 面向对象的特征 封装
- C++ 简介
- JavaScript之语言特性
- FZU 2271 X Floyd
- 【bzoj2286】【SDOI2011】消耗战
- _$$_javassist_1 cannot be cast to javassist.util.proxy.Proxy异常
- ARC082 F
- Python新手写出漂亮的爬虫代码1——从html获取信息
- 圈圈套圈圈(夹层)
- elk安装及使用一(elk的概述及elasticsearch安装)
- STL-list容器