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的作用域相关整理。的主要内容,如果未能解决你的问题,请参考以下文章