在es5中变量作用域分为两种:全局变量,局部变量;
作用域说明:指一个变量的作用范围
局部变量:写在函数体内部,其中函数中所传递的参数也是局部变量(小括号中的),仅在定义的部分能够使用;
全局变量:写在函数体外部的变量,其中在函数中使用但未用var声明的变量也是全局变量,可以在全局中任何部分使用;
全局变量
(1)直接声明
- vara=10;
- console.log(a)//10
(2)在{ }中声明
- varb=4;
- if(b>5){
- varc=9;
- }else{
- console.log(b)//4
- }
- console.log(c)//undefined
- <P>提升后P>
- varb=4;
- varc;
- if(b>5){
- c=9;
- }else{
- console.log(b)//4
- }
- console.log(c)//undefined
(3)在函数体中使用但并未声明
- functiondemo(){
- a=10;
- }
- console.log(a);//报错
- demo();
- console.log(a);//10
- <P>相当于:P>
- vara;
- functiondemo(){
- a=10;
- }
- console.log(a);//undefined
- demo();
- console.log(a);//10
局部变量
局部变量仅仅在声明的部位能够调用,其他位置不能访问。
(1)在函数体内部声明
- functiondemo(){
- vara=10;
- console.log(a)//10
- }
- console.log(a);//报错
- demo();
- console.log(a);//报错
(2)在函数体内部声明中的参数
- functiondemo(a){
- a=10;
- console.log(a)//10
- }
- console.log(a);//报错
- demo();
- console.log(a);//报错
(相关推荐:javascript基础视频教程)
在 Javascript 中有两种作用域类型:
局部作用域
全局作用域