JavaScript学习第一站

初识JavaScript

JavaScrip是解释性语言

什么是解释性语言?

就是不需要在运行前编译,在运行程序的时候才翻译,专门的解释器负责在每个语句执行的时候解释程序代码。

那么什么是编译性语言?

是在在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了

那么解释性语言与编译性语言的区别在哪儿?

编译性语言
先通篇翻译,全部读完后翻译然后生成一个编译好后的编译文件,再执行这个编译好的文件

  • 优点:执行速度快
  • 不足:移植性不好(所谓的不跨平台)

解释性语言
读一行翻译一行,一遍翻译一边执行,不会生成文件

  • 优点:跨平台
  • 不足:相对而言慢一点

注:

java既不是编译性语言,也不是解释性语言,java是一种oak的面向对象语言

JavaScript是单线程的

为什么JavaScript是单线程?

JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。

  • 这个要回到Js历史了,布兰登·艾奇(Brendan
    Eich)
    老哥用10天创造js。当时js用来干嘛,简单的浏览器交互,验证,操作一下DOM是吧。那把它设计成那么复杂干什么,而且如果多线程的话,操作DOM会出现麻烦的事情,假设一个线程读取DOM节点数据的同时,另一个线程把那个DOM节点删了,呵呵。所以JS一个线程就够了,也就是一步一步顺序运行下来。
  • JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?
    为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完
    全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。

JavaScript的组成(三大部分)

  • ECMAScript
  • DOM
  • BOM
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章