位置: 编程技术 - 正文

谈谈我对JavaScript原型和闭包系列理解(随手笔记9)(谈谈我对中国传统文化的理解)

编辑:rootadmin

推荐整理分享谈谈我对JavaScript原型和闭包系列理解(随手笔记9)(谈谈我对中国传统文化的理解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:谈谈我对中国传统文化的理解,谈谈我对环境保护的认识,谈谈我对中国传统文化的理解,谈谈我对秦始皇的看法,谈谈我对美的认识,谈谈我对教师的理解,谈谈我对环境保护的认识,谈谈我对美的认识,内容如对您有帮助,希望把文章链接给更多的朋友!

相关阅读:谈谈我对JavaScript原型和闭包系列理解(随手笔记6) 谈谈我对JavaScript原型和闭包系列理解(随手笔记8)

作用域

引用《JavaScript语言精粹和编程实践》上对作用域的定义:

变量作用域又叫变量的可见性。变量作用域完成对信息的隐蔽,也就是处理“割据”问题。

js中是没有块级作用域的(ES6中有一个let,可以在{},if,for里面声明,同时作用域限定在块级。let声明的变量不存在变量提升!这里不谈论这个,因为我也是偶然看到。)。

我们在编写代码的时候,不要在“块”里面声明变量,应该在代码的一开始就声明好,以避免发生歧义。

javascript除了全局作用域之外,还有一个函数作用域。

我们在声明变量的时候,全局代码在最前端声明,函数中声明变量要在函数体前面声明。同时,声明变量的时候必须用"var"操作符。

全局代码、fn函数和bar函数都会形成一个作用域。作用域有上下级关系,上下级关系是看函数在哪个作用域下创建的。fn函数作用域下创建了bar函数,"fn函数作用域"就是"bar函数的作用域"的上级。

作用域的最大用处就是隔离变量,不同作用域下同名变量不会有冲突

--------------------------------------------------------------------------------

作用域在函数定义的时候就已经确定了,而不是函数调用的时候确定。

1、程序在加载的时候就已经确定了全局上下文环境,并随着程序的执行而对变量就行赋值。

谈谈我对JavaScript原型和闭包系列理解(随手笔记9)(谈谈我对中国传统文化的理解)

2、执行到行,调用fn(),创建fn函数的执行上下文环境,压栈,并将此上下文设置为活动状态。

3、执行到行,调用bar(),创建bar()函数的执行上下文环境,压栈,并将此上下文设置为活动状态。

4、bar()调用完毕,出栈,bar()函数上下文环境被销毁。接着执行行,调用bar(),创建bar()函数的执行上下文环境,压栈,并将此上下文设置为活动状态。

5、bar()调用完毕,出栈,其上下文环境被销毁。此时的控制权交给了fn()上下文环境,其再次变为活动状态。

6、此时fn()调用完毕,出栈,其上下文环境被销毁。控制权交给了全局执行上下文环境。

到这里这一段代码的执行过程就跑完了。

然后借用一下原作者的完整图:

总结:

作用域只是一个“地盘”,要通过作用域对应的执行上下文环境来获取变量的值。同一个作用域下,不同的调用会产生不同的执行上下文环境,继而产生不同的变量的值。所以,作用域中变量的值是在执行过程中产生的确定的,而作用域却是在函数创建时就确定了。所以,如果要查找一个作用域下某个变量的值,就需要找到这个作用域对应的执行上下文环境,再在其中寻找变量的值。

基于JS2Image实现圣诞树代码 马上圣诞节了,作为一名程序猿,如何体现自己独特的过节风格,如何在朋友圈发一张专属自己的祝福照片我觉得很有必要,你们说是不是。谈到圣诞

JS实现部分HTML固定页面顶部随屏滚动效果 本文实例讲述了JS实现部分HTML固定页面顶部随屏滚动效果。分享给大家供大家参考,具体如下:我们经常在淘宝网看到这样的特效,商品列表特别长,

javascript与jquery中的this关键字用法实例分析 本文实例分析了javascript与jquery中的this关键字用法。分享给大家供大家参考,具体如下:this表示当前的对象,这个当前对象可以是表单,p等任何元素1.ja

标签: 谈谈我对中国传统文化的理解

本文链接地址:https://www.jiuchutong.com/biancheng/385539.html 转载请保留说明!

上一篇:谈谈我对JavaScript原型和闭包系列理解(随手笔记8)(谈谈我对美国的印象)

下一篇:基于JS2Image实现圣诞树代码(jsgenerator)

  • 可以抵扣进项税额的增值税普通发票
  • 流转税通俗
  • 提高资产利用率,增加销售收入
  • 进销存工作流程
  • 防火门属于固定式防火风格
  • 税务在哪查询
  • 已导出的申报表如何修改
  • 专项申报的类别
  • 司法拍卖定义
  • 企业内部商品转移怎么核算
  • 购买加油卡有优惠吗
  • 印花税的征税对象包括
  • 收到捐赠设备
  • 银行如何做存款
  • 租赁房屋缴纳什么税
  • 购买金蝶软件计入什么费用
  • 将产品转为本企业使用
  • 企业开办费的会计和税务处理
  • 增值税普通发票有什么用
  • 广告服务印花税怎么交
  • 什么凭证需要审计报告
  • 以前年度损益调整怎么用
  • 做季报和月报增发的区别
  • 生产成本的工料有哪些
  • 跨年度的房租发票怎么做账
  • 分公司打货款怎么做账
  • 平板电脑的windows更新有必要吗
  • php压缩包
  • kb4507449安装失败
  • 最小的的照片
  • php -i
  • phpstudy备份数据库
  • 无形资产使用寿命的复核
  • 不能进行加计扣除的研发费用有哪些
  • tensorflow安装教程pycharm
  • 房地产开发企业增值税怎么算
  • php编程入门教程
  • 电子承兑可以提前贴现吗
  • php使用什么开发工具
  • php自动提交表单
  • 原材料当废品卖出分录
  • dns管理控制台在哪里
  • php上传不了文件
  • python中的元组
  • 帝国cms移动端
  • 电商会计如何做账
  • 收到提供劳务的收入
  • 处置固定资产亏损,增值税所得税申报不一至情况说明
  • 所得税汇算清缴调整后要账务处理吗
  • 邮寄快递费用计算
  • 购入无形资产属于资产吗
  • 微信收入构成在哪
  • 收回理财款会计分录
  • 公司员工还款会计分录
  • 会计做账过程中遇到的问题
  • sql查询树形结构
  • 路由怎么配
  • linux三个主要部分及功能
  • macbookair断网
  • linux命令总结
  • mac如何更改
  • win7 host文件路径
  • windows wps
  • 磁盘修复完成以后怎么办
  • win10本地连接怎么改名称
  • linux内核文件夹
  • androidtime
  • perl中@_
  • node.js抓包
  • 如何用虚拟号码打电话
  • 简单介绍自己的名字由来
  • jquery操作checkbox火狐下第二次无法勾选的解决方法
  • JavaScript入门教程
  • 推荐javascript教程
  • 国家税务局湖北省税务总局
  • 异地户口如何办理护照
  • 公民海外收入纳税
  • 税务发票小助手 小程序二维码
  • 企业税费如何计算
  • 税务总局2013年65号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设