零基础JavaScript入门教程(34)-函数的作用域

点此查看 零基础JavaWeb全栈文章目录及源码下载

1. 背景

首先说一下【域】的概念,我们都知道,域代表地域、领域的意思。

我们在生活中,往往把一些东西,分为私人的领域,还有公共的领域。

比如,教室里面,每个学生的书桌,是学生的【私人领域】,里面的东西属于学生个人的,未经允许其他人不能查看、使用。

还一种,就是教室里面的扫帚、拖把、过道,并不是哪个学生的私人领域,而是【公共领域】,也就是说所有人都可以使用。

总结下,私人领域,学生自己可以查看。公共领域,所有学生都能查看。

2. 函数的作用域

函数,也有它的“私人领域”,专业的名词是函数的作用域,既然是函数自己的,那么函数自己是可以使用的,但是函数外面,就不能使用该作用域里面的东西。

举一个例子:

		// 定义一个函数
        function myDesk() {
    
    
            var book = "Java入门"; //函数作用域内部的变量
        }
        console.log(book);

运行结果如下,这是因为book是函数作用域里面的东西,属于函数自己。在函数之外是无法使用的。
在这里插入图片描述
我们从专业角度分析,函数的作用域,其实是函数体大括号中间的部分,在函数体内定义的变量,属于函数作用域,在函数之外是无法访问的。这就是函数的作用域!

3. 全局作用域

那么不在函数体内的,也就是大括号之外,是什么呢?

这个地方也有专业名字,叫做全局作用域。也很好理解,全局都能使用。

我们看例子:

		// 定义了一个全局变量
        var book = "HTML入门";
        console.log(book); // 外部可以直接访问

        function readBook() {
    
    
            console.log(book); //在函数内调用全局作用域的变量
        }
        readBook(); //调用函数时,函数内可以正常访问

运行结果如下:
在这里插入图片描述
分析下,我们先定义了一个全局变量book,因为它不属于任何函数,所以全局都能使用它,就相当于教室里面公用的扫帚。

然后我们可以直接使用它,在函数内也可以使用它,因为它虽然不属于个人,但是是公用的。

总结:全局作用域的变量,函数内可以使用,函数外部同样可以使用。

4. 小结

正如物品、房屋等空间有私人、公共之分。

我们的程序内的作用域空间,也有全局、函数之分。全局的,到处都能访问。函数的,只有函数内部能够访问。

作用域问题其实比较复杂,此处给大家简单介绍一下,入门阶段有个大体的了解即可。

猜你喜欢

转载自blog.csdn.net/woshisangsang/article/details/123758023