首页技术文章正文

JavaScript作用域分为哪几种类型?

更新时间:2022-03-17 来源:黑马程序员 浏览量:

IT培训班

通常来说,一段代码中所用到的名字(如变量名)并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域机制可以有效减少命名冲突的情况发生。本节将对作用域进行详细讲解。

作用域的分类

通过前面的学习,我们知道变量需要先声明后使用,但这并不意味着声明变量后就可以在任意位置使用该变量。例如,在函数中声明一个age变量,在函数外进行访问,就会出现age变量未定义的错误,示例代码如下。

function info() {
    var age = 18;
}
info();
console.log(age); //报错,提示age is not defined(age未定义)


从上述代码可以看出,变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。JavaScript根据作用域使用范围的不同,将其划分为全局作用域、函数作用域和块级作用域(ES6提供的)。上述示例声明的age变量只能在info0函数体内才可以使用。

接下来我们针对JavaScript中不同作用域内声明的变量进行介绍。

①全局变量:不在任何函数内声明的变量(显式定义)或在函数内省略var声明的变量隐式定义)都称为全局变量,它在同一个页面文件中的所有脚本内都可以使用。

②局部变量:在函数体内利用var关键字定义的变量称为局部变量,它仅在该函数体内有效。

③块级变量:ES6提供的let关键字声明的变量称为块级变量,仅在“0”中间有效,如if、for或while语句等。

对于初学者来说,重点是理解全局变量和局部变量的区别,而块级变量和let关键字属于ES6的新增内容,读者此时仅简单了解即可。

分享到:
在线咨询 我要报名
和我们在线交谈!