写给自己:奥里给!!!~
作用域的学习
全局作用域
作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 的文件;
局部作用域
作用于函数内的代码环境,就是局部作用域;
(敲黑板)JS没有块级作用域
看看下面一个神奇的例子ba!!!
if(true){
var num = 123;
console.log(num); //123
}
console.log(num); //123
变量的作用域
在JavaScript中,根据作用域的不同,变量可以分为两种:
- 全局变量
- 局部变量
全局变量
- 全局变量在代码的任何位置都可以使用
- 在全局作用域下 var 声明的变量 是全局变量
局部变量
- 局部变量只能在该函数内部使用
- 在函数内部 var 声明的变量是局部变量
作用域链
也没那么玄乎,作用域链简单来说就是通过采取就近原则的方式来查找变量最终的值。看下下面这个输出的例子就大概明白了!!!
var a = 1;
function fun1() {
var a = 2333;
var b = '2333';
fun2();
function fun2() {
var a = 3;
fun3();
function fun3() {
var a = 4;
console.log(a); //a的值为4
console.log(b); //b的值为23333
}
}
}
fun1();