开发者学堂课程【JavaScript 入门与实战:变量提升及代码执行阶段】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/582/detail/8043
变量提升及代码执行阶段
内容介绍
一、全局变量和局部变量
二、变量提升及代码执行
一、全局变量和局部变量
作用域:变量可以起作用的范围和区域
1. 全局变量与全局作用域
在任何地方都可以访问到的变量就是全局变量,全局变量所在的区域就是全局作用域
2. 局部变量与局部作用域
只在固定的代码片段内可访问到的变量,最常见的例如函数内部的变量,就是局部变量,局部变量所在区域就是局部作用域(函数作用域)
3. 注意
不适用 var 声明的变量是全局变量,不推荐使用。
变量退出作用域之后会销毁,全局变量关闭网页和浏览器才会销毁。
4. 全局作用域和局部作用域的区别
var f2 =function(){
var a =1;
}
var a= 2;
console.log(a);
当console.log(a);
函数在外面就是全局作用域
var f2 =function(){
var a =1;
console.log(a);
}
var a= 2;
当 console.log(a);函数在里面就是局部作用域
二、变量提升及代码执行
console.log(a);//undefined
var a=2
console.log(a);// a is not defined
变量提升:在代码执行之前变量已经在编译阶段被声明了
JS 代码的运行分为两个阶段
1. 解析(编译)阶段:语法检查,变量及函数进行声明
2. 运行阶段:变量的赋值,代码流程的执行
范例:
var a; {先进行变量的声明}
console.log(a);
a=2 {然后进行变量的赋值}
注意:如果一个变量声明了但是没有赋值就会是 undefined