1、变量
(1)全局变量:除了函数定义的变量,其它任何位置定义的变量都是全局变量;
(2)局部变量:在函数内部定义的变量。函数外面访问不到;
(3)隐式全局变量:声明的变量没有var;
举例1:
说明:这里的number只赋值,没有var,依然能够被访问到;
举例2:
说明:函数里的num = 1000,没有var声明,此时不是局部变量,而是隐式全局变量,因为{ }外面也能访问到
2、作用域:变量和函数的可访问范围;
(1)全局作用域:全局变量的使用范围;
(2)局部作用域:局部变量的使用范围;
(3)块级作用域:一对{ },看成是一块,在这个区域中定义的变量,只能在这个区域中使用。
说明:JavaScript没有块级作用域!所以在块级作用域中定义的变量,{ }外面也能使用(除了函数)
比如:while循环{ }中定义的变量,{ }外面也能访问到
3、作用域链:
理解:函数在执行的过程中,先从自己内部(当前的作用域)寻找变量,如果找不到,就像沿着一条链子一级一级往上搜索作用域,由内向外,一直延续到全局执行环境的变量。
比如:结果:50