概览
JavaScript组成
完整的JavaScript由ECMAScript、DOM和BOM三部分组成。
- ECMAScript,提供核心语言功能。
- DOM,文档对象模型,提供访问和操作网页内容的方法和接口。
- BOM,浏览器对象模型,提供与浏览器交互的方法和接口。
JS执行过程
分为预解析,代码执行两步。
预解析:程序在执行过程,会先将代码读取到内存中检查,所有的声明在此时进行标记,所谓的标记就是让js解释器知道有这个名字,后面在使用名字的时候,不会出现未定义的错误,这个标记过程就是提升。
变量(标识符)声明让解释器知道有这个名字,但没有任何数据与之对应;函数声明与函数表达式(不提升)有区别,函数声明是单独写在一个结构中,不存在任何语句(赋值等)、逻辑判断等结构中,函数声明包含两部分,首先告诉解释器有这个名字存在,然后告诉解释器对应的函数体。
js引擎把js里面所有的var还有function提升到当前作用域的最前面,分为变量预解析(变量提升)和函数预解析(函数提升),变量提升就是把所有变量声明提升到当前的作用域最前面,不提升赋值操作;函数提升就是把所有函数声明提升到当前的作用域最前面,不调用函数,所以function 函数名(形参1,形参2,...) {}会将整个函数声明提升,var 变量名 = function() {}仅提升变量声明部分。
代码执行:按照代码书写顺序从上往下执行。