js当中变量声明

63 阅读1分钟

首先在JS中涉及到作用域的问题,那么什么是作用域呢?

作用域是代码中所使用名字的作用范围,分为Script全局作用域和函数局部作用域。 当浏览器解析到script标签时,会停止对html和css的解析,同时启动javascript的解析器。而在解析javascript的过程中我们主要关注预解析和运行。

预解析,即在当前作用范围中去寻找var、function、形参这三个内容。

如果找到var关键字、则提取var后面的名字放到当前作用域中,且默认给这个变量初始化一个值为undefined。

如果找到function关键字,则提取函数名放到当前作用域中,且将整个函数块赋值给函数名。

如果找到形参,则将形参名放到当前作用域中,且默认初始化为undefined。这个过程也称为变量提升。