js 作用域和作用域链
Posted 立心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 作用域和作用域链相关的知识,希望对你有一定的参考价值。
作用域是javascript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。
JavaScript作用域
任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。
1. 全局作用域(Global Scope)
在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:
(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如:
1 2 3 4 5 6 7 8 9 10 11 12 | var authorName= "山边小溪" ; function doSomething(){ var blogName= "梦想天空" ; function innerSay(){ alert(blogName); } innerSay(); } alert(authorName); //山边小溪 alert(blogName); //脚本错误 doSomething(); //梦想天空 innerSay() //脚本错误 |
(2)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如:
1 2 3 4 5 6 7 8 | function doSomething(){ var authorName= "山边小溪" ; blogName= "梦想天空" ; alert(authorName); |