JavaScript是面向Web的编程语言,也是一种基于对象和事件驱动的脚本语言,运行在客户端,控制着网页的行为,和HTML,CSS并称前端三大核心基础知识。其中HTML控制着网页的结构,CSS控制着网页的样式,外观。前端
JavaScript和Java是彻底不一样的两种编程语言,虽然名字看起来类似,因此常常被初学者误解。Java是一种能够撰写跨平台应用的面向对象的编程语言,能够理解为:一切皆对象,开发简单的程序也必须设计对象。JavaScript是一种直译式脚本语言,主要活动与Web页面,嵌入在HTML代码中,几乎无所不能。 编程
ECMAScript 是JavaScript实现所基于的标准。一般缩写为:ES
JavaScript 是该标准的实现之一,常常会据说ES6,ES2015,ES2017等等,称呼不少,不必太在乎,知道本身所用的版本和当前流行改进的版便可本。 在这以前,很长一段时间里,JavaScript开发都是基于ESCMAScript3标准。ES5也是一个巨大的改进版本,ES6更是给咱们带了巨大惊喜。目前开发比较流行的是ES6。后端
尽管ECMAScript是一个很重要的标准。但并非JavaScript的所有,完整的JavaScript包括三个部分
1,核心,解释器 (ECMAScript)
2, 文档对象模型 (DOM)
3, 浏览器对象模型 (BOM)浏览器
JavaScript是伴随着浏览器的诞生而诞生,因此JavaScript的执行环境最多的仍是浏览器,由于它是脚本语言,必须借助引擎即解释器来运行,因此它能够在封装了引擎的环境下运行,好比Node.js封装了google的V8引擎,还有MongoDB。因此JavaScript运行环境能够分为:浏览器环境和非浏览器环境,做用于先后端,几乎无所不能。
JavaScript最大的特色就是单线程,同一时间只能进行一项任务,须要排队继续下一个。
在浏览器环境中,JavaScript引擎按照script标签代码从上往下的顺序加载并当即解释执行,在解释执行的过程当中有两个重要时期:预编译期和执行期,其中,预编译期,须要注意几点:
1,函数在未被调用的时候是不进行预编译的
2,在本身所在的做用域中,var 声明的变量和function定义的函数会被提高
3,预编译以后,代码安装顺序依次执行
4,函数体内的声明不会前置到外部做用域,函数体的预解析发生在函数被调用的时候,预编译以后,才会执行函数体内的代码编程语言