javascript的作用域相关整理。

Posted 铠甲巨人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript的作用域相关整理。相关的知识,希望对你有一定的参考价值。

javascript作用域相关整理。

一、全局作用域(全局作用域就是在整个代码中都能访问的对象)

第一种全局作用域是最外面定义的变量

var toDay = "Tuesday";
function func() {
    var yesterday = "Monday";
    function func2() {
        console.log(yesterday);
    }
    func2()
}
alert(toDay);
{#提示Tuesday#}
alert(yesterday);
{#报错#}
func();
{#打印Monday#}
func2();
{#报错#}

1,最外面声明的变量,都可以调用。

2,外面函数声明的变量,里面的函数可以调用。

3,外面不能调用函数里面声明的变量。

4,外面不能调用函数里面的函数。

 

第二种是不写var的变量

function func() {
    toDay = "Tuesday";
    var yesterday = "Monday";
    alert(toDay)
}
func();
{#执行函数,提示Tuesday#}
alert(toDay);
{#提示Tuesday#}
alert(yesterday);
{#报错#}

没有定义,直接赋值,自动声明为全局变量。

 

还有一种,所有window对象的属性拥有全局作用域。

一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。

 

 

二、局部变量(在函数内部,当局部变量与全局变量重名时,局部变量优先级高于全局变量,但不会在内存区域中覆盖全局变量:)

未完待续。。。。

 

 

 

 

总结:

JavaScript通过函数管理作用域。

局部变量:在函数内部声明的变量是局部变量,只能在这个函数内部使用,函数外部不可用。

全局变量:在任何函数外面声明的变量;或是未经声明在函数内部直接简单使用的变量。

全局对象:每个JavaScript环境有一个全局对象,当你在适当的地方使用this的时候可以访问到。你创建的每一个全局变量都是这个全局对象的属性或数组元素。在浏览器中,为方便起见,该全局对象有个附加属性叫做window,此window(通常)指向该全局对象本身。

 

以上是关于javascript的作用域相关整理。的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 作用域 与 作用域链

作用域是什么?

JavaScript 作用域

《你不知道的JavaScript》整理——作用域提升与闭包

javaScript作用域

JavaScript必须了解的知识点总结。