摘要:全局作用域在标签里,即为全局作用域。局部作用域一个函数体就是一个新的局部作用域。函数外部作用域不能访问内部作用域的变量。当我们处于某一个作用域里面修改某个变量值的时先修改自身作用域如果没有就依次修改上一个作用域。
全局作用域
在标签里,即为全局作用域。
在函数体之外,
局部作用域一个函数体就是一个新的局部作用域。
函数内部定义的变量在局部作用域内。
函数外部作用域不能访问内部作用域的变量。
每个函数有不同的作用域,在其他函数中是不可以访问的(一个函数访问另一个函数变量的时候,通过传递参数)。
作用域链
函数作用域里面访问一个变量,先从自身开始找,如果没有,就依次往上一级作用域查找,直到全局作用域,全局作用没有就报错。
当我们处于某一个作用域里面,修改某个变量值的时,先修改自身作用域,如果没有就依次修改上一个作用域。
delete
删除未声明的变量,但是不可以删除已经声明的变量
块作用域(ES6新增)
let , const 不仅仅是声明变量的区别,它们还有支持块作用域的机制(注意:不是大括号,if,switch,for产生的块)
let,consts声明的变量不会泄露到顶层对象,只能声明之后再使用,var可以先赋值,在声明
注意
多个作用域问题
12345
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108482.html
摘要:这几天因为对于中的作用域链和原型链有点混淆,当访问一个不带有修饰的变量时,我想知道它的搜索顺序,因为作用域链的链结点也是一个变量对象,那么当在这个变量对象中查找变量时会不会沿着它的原型链查找呢这样就有两种可能先查找作用域链前端的变量对象,然 这几天因为对于JavaScript中的作用域链和原型链有点混淆,当访问一个不带有this修饰的变量时,我想知道它的搜索顺序,因为作用域链的链结点也...
摘要:以上是从作用域的角度对闭包的理解,我们还可以结合执行上下文栈来理解闭包。这就是需要理解闭包的核心内容。即,执行到第行时,全局上下文环境将变为活动状态,但是上下文环境依然会在执行上下文栈中。 理解了上下文环境、作用域、作用域链以及自由变量,我们再来聊聊闭包。 我们不急于给出闭包的概念,先从应用闭包的两种情况 —— 1.函数作为返回值,2.函数作为参数被传递 —— 来直观的认识它。 第一,...
摘要:条件闭包是允许函数访问局部作用域之外的数据。这就是需要理解闭包的核心内容。我们可以通过创建另一个匿名函数强制让闭包的行为符合预期。而这个匿名函数内部又创建并返回了一个访问的闭包。 showImg(https://segmentfault.com/img/remote/1460000009476113?w=500&h=222); 前言 有很多人搞不清匿名函数和闭包这两个概念,经常混用。闭...
摘要:本文是本人阅读学习深入理解原型和闭包时所作的总结和笔记,当然也引用了很多原文,感兴趣的朋友也可以直接去看原文。即这里的称为隐式原型。注意,构造函数的函数名第一个字母大写规则约定。但实际上,上述情况是一种理想的情况。 本文是本人阅读学习深入理解JavaScript原型和闭包时所作的总结和笔记,当然也引用了很多原文,感兴趣的朋友也可以直接去看原文。 1、一切都是对象 先说结论,一切引用类型...
摘要:情况构造函数所谓构造函数就是用来对象的函数。另外注意,构造函数的函数名第一个字母大写规则约定。闭包但是你只需要知道应用的两种情况即可函数作为返回值,函数作为参数传递。如上代码,函数作为返回值,赋值给变量。这就是需要理解闭包的核心内容。 原文链接http://www.cnblogs.com/wangfupeng1988/p/3977924.html 对象是属性的集合。 function ...
阅读 2975·2021-10-27 14:16
阅读 697·2021-10-13 09:39
阅读 3673·2021-09-29 09:46
阅读 2091·2019-08-30 15:54
阅读 2599·2019-08-30 15:52
阅读 2995·2019-08-30 15:44
阅读 1104·2019-08-30 15:44
阅读 499·2019-08-30 10:51