Skip to content

JS属于什么语言

专题简介

  • 概念
  • 特点

是什么语言

JavaScript是一种动态类型、弱类型、基于原型的面向对象的解释型脚本语言

特点

1. 解释型脚本语言

JavaScript 是一种解释型脚本语言,与 C、C++ 等语言需要先编译再运行不同,使用 JavaScript 编写的代码不需要编译,可以直接运行。

2. 面向对象

JavaScript 语言标准已经明确说明,JavaScript 是一门面向对象的语言;   JavaScript是否属于“面向对象的语言”一直饱受争议,一些争论中,有人强调,JavaScript 并非“面向对象的语言”,而是“基于对象的语言”,这个说法也一度流传甚广。JavaScript 的对象设计跟目前主流基于类的面向对象差异非常大。而事实上,这样的对象系统设计虽然特别,但是 JavaScript 提供了完全运行时的对象系统,这使得它可以模仿多数面向对象编程范式,所以它也是正统的面向对象语言。而因为与基于类的面向对象的差异,我们也称JavaScript 为基于原型的面向对象。

3. 弱类型&松散型

对使用的数据类型没有严格的要求,例如您可以将一个变量初始化为任意类型,也可以随时改变这个变量的类型。

4. 动态性

JavaScript 是一种采用事件驱动的脚本语言,它不需要借助 Web 服务器就可以对用户的输入做出响应,例如我们在访问一个网页时,通过鼠标在网页中进行点击或滚动窗口时,通过 JavaScript 可以直接对这些事件做出响应。

5. 跨平台

avaScript 不依赖操作系统,在浏览器中就可以运行。因此一个 JavaScript 脚本在编写完成后可以在任意系统上运行,只需要系统上的浏览器支持 JavaScript 即可。

6. 事件驱动

JavaScript对用户的响应,是以事件驱动的方式进行的。在网页(Web Page)中执行了某种操作所产生的动作,被称为“事件”(Event)。例如按下鼠标、移动窗口、选择菜单等都可以被视为事件。当事件发生后,可能会引起相应的事件响应,执行某些对应的脚本,这种机制被称为“事件驱动”。

7. 单线程与异步处理共存

单线程程序的执行顺序是从上到下依次执行,一个程序中只可以执行一个程序。而异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成。二者看起来相互矛盾,不能够同时存在,可是JavaScript以一种巧妙地方式用单线程实现了异步处理的效果。   在JavaScript的主线程和任务队列中间还存在一个WebAPIs,这个WebAPIs是浏览器单独为处理JavaScript的异步任务开辟的线程。当主线程栈中的函数需要异步处理的时候,主线程会把需要异步的部分推给WebAPIs,这部分异步由浏览器去执行,执行完异步之后将处理后的结果以事件的形式丢到任务队列中,这个事件就是我们写代码时的“回调函数”。

8. 安全性语言

JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。