一、本文简介
从全局、局部、块级作用域这三个方面进行介绍
作用域?
作用域就是变量和函数可访问的范围,作用域控制着函数的可见性和生命周期
三种作用域的共同特点:
都是独立的区域,如果存在包含关系,子作用域可以拿到父级作用域的内容,而父级作用域不能拿到子作用域中的内容。
二、全局和局部
首先要懂全局变量和局部变量的意思,然后延伸到作用域
1. 全局变量:
在函数/方法外声明的变量
特点:在任何地方都可以使用,只要程序没关一直有效
2. 局部变量
在函数/方法内声明的变量
特点:只能在函数内使用,在外边不能使用,在函数的大括号开始到大括号结束内
var a=10;//全局变量,在函数外声明的
function fn(){
var a=20;//局部变量,在函数内声明的
console.log(a);//20
}
fn();
console.log(a);//10,全局,不能拿到函数内的内容
3.在局部作用域中隐式声明变量
var a=10;
function fn(){
a=20;//没有加var是隐式声明的变量,这时候不再是局部变量,会变成全局的
console.log(a);//20,
}
fn();
console.log(a);//20, 既然在函数中的a是全局的,在这里也能使用
4.在局部作用域有传参数