JavaScript学习(六)——作用域

一.全局作用域

——直接编写在script标签中的JS代码,都在全局作用域

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

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

——在全局作用域中,创建的变量都会作为window对象的属性保存,创建的函数都会作为window对象的方法保存

function fun4(){
    function fun_son(x){
        document.write("你的心有一道墙"+"</br>");
    }
    return fun_son();//这里可以返回一个函数对象也可以返回一个函数调用
} 
window.fun4();

 JS声明问题:

使用var关键字声明的变量会在所有代码执行之前被声明(不会赋值),但是如果变量不使用var声明那么不会提前声明。

而函数声明时,如果使用函数声明形式创建函数funtion 函数(){},那么它所有执行代码会在所有代码执行之前就被创建。而使用函数表达式 var fun=funtion(){} 创建的函数则不会被提前创建。

二.函数作用域

——调用函数时创建函数作用域,函数执行完毕以后,函数作用域被销毁

——每调用一次函数就会创建一个新的函数作用域,他们之间是相互独立的

——在函数作用域中可以访问到全局作用域的变量,在全局作用域中无法访问函数作用域变量

——在函数中如果不重新声明var变量的话,那么默认就是全局变量,修改的也是全局变量,同时,如果某个变量与全局变量同名,那么可以使用window字段来使用全局变量

——在JS中定义了形参就相当于在函数作用域中声明变量

——当在函数作用域中使用一个变量的时候,他会现在自身作用域中寻找,如果由就直接使用,否则就一层层的向外层作用域寻找,如果全局中都没有找到就直接报错

 

 

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页