美文网首页
什么是作用域

什么是作用域

作者: Shz_040c | 来源:发表于2019-05-11 20:40 被阅读0次

概念:任何编程语言都有作用域的概念,简单来说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。

js的作用域是靠函数来形成的,也就是说一个函数的变量在函数外不可以访问。

作用域又可分为,全局作用域,局部作用域。

全局作用域

任何地方都能访问到的对象拥有全局作用域。

1.1函数外面定义的变量拥有全局作用域

var n =2;

function fn (){

var a =1;

return a;

}

1.2未定义直接赋值的变量自动声明为拥有全局作用域

2局部作用域

局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所以在一些地方会把这种作用域成为函数作用域。

图一中,a是函数内部声明并赋值,拥有局部作用域,只能带函数fn内部使用,在fn外部使用就会报错,这就是局部作用域的特性,外部无法访问。

作用域链

通俗地讲,当声明一个函数时,局部作用域一级一级向上包起来,就是作用域链。

当执行函数时,总是先从函数内部找寻局部变量

如果内部找不到(函数的局部作用域没有),则会向创建函数的作用域(声明函数的作用域)寻找,依次向上

相关文章

  • js高级知识点(第五天)

    所用域 什么是作用域 变量起作用的范围 什么是块级作用域,使用代码块限定的作用域是块级作用域(let声明的变量是块...

  • 2018-01-07 关于javascript闭包和作用域的理解

    关于 javascript 闭包的一些思考 作用域 词法作用域 函数作用域 块作用域 闭包 什么是作用域? 作用域...

  • 作用域链

    作用域链是什么? 如果要解释作用域链得先知道什么是作用域?什么是闭包? 什么是作用域 用域是一个函数在执行时期的执...

  • 作用域链

    什么是作用域链? 在理解什么是作用域链之前,我们需要了解一个概念,那就是作用域。那么什么是作用域呢?简单的说,作用...

  • 前端笔试中常考题--js的函数与变量提升问题

    先谈谈作用域#### -- 什么是作用域?就是某个变量有(起)作用的范围;--词法作用域和动态作用域词法作用域:在...

  • 词法作用域

    我们知道JavaScript并不具有动态作用域,它只有词法作用域,什么是词法作用域? 一、 词法作用域 词法作用域...

  • node.js小记 (0419) http源码解读

    什么是作用域? 作用域分局部作用域和全局作用域,同时作用域和变量有关,在局部作用域内可以访问到全局变量,在局部作用...

  • 什么是作用域、作用域链?

    说完了闭包,再来聊聊作用域和作用域链吧。 什么是作用域? 简单来说,在一定的空间里可以对数据进行读写操作,这个空间...

  • 作用域与闭包

    什么是作用域?作用域(scope)指的是变量存在的范围,这里只讨论 ES 6 之前的全局作用域与函数作用域; 全局...

  • 你不知道的javascript(上券)

    第一部分 第2章 什么是词法作用域?动态作用域?js所采用的作用域模型是哪种?首先什么是作用域,简单来说就是限定一...

网友评论

      本文标题:什么是作用域

      本文链接:https://www.haomeiwen.com/subject/ktyfaqtx.html