05-谈谈作用域的那点事

一、全局作用域

1.全局作用域的范围

只要是写在script标签中的都是全局作用域

2.全局作用域中变量声明提前

    <script type="text/javascript">
        console.log(a);
        var a = 1;
    </script>
View Code

执行结果如图所示

 

3.全局作用域中函数声明提前

1     <script type="text/javascript">
2         fun();
3         function fun(){
4             console.log("Hello World!");
5         }
6     </script>
View Code

执行结果如图所示:

 

 

4.全局作用域在页面打开时创建,在页面关闭时销毁

5.在全局作用域中有一个window对象,它代表的是浏览器的一个窗口,它有浏览器创建,我们可以直接使用

 在全局作用域中,所有变量都是window的属性;所有函数都是window的方法

   全局作用域中的变量都是全局变量,在任何地方都可以进行访问

1     <script type="text/javascript">
2         window.fun();  
3         function fun(){
4             console.log("Hello World!");
5         }
6         if (fun === window.fun){
7             alert("true");
8         }  // 会弹出ture
9     </script>

函数作用域

1.调用函数时创建作用域,执行函数时销毁

2.调用一次函数创建一个作用域,他们之间彼此互补干扰

3.在函数作用域中也有声明提前

4.在函数中不适用var声明的变量都是全局变量

5.在函数中也可以使用window对象