位置: 编程技术 - 正文

JavaScript变量的作用域全解析(javascript 变量)

编辑:rootadmin

推荐整理分享JavaScript变量的作用域全解析(javascript 变量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript变量的命名规则,javascript变量的命名规范,javascript变量的作用域代码,javascript变量的关键词,javascript变量的命名规则,javascript变量的作用域,javascript变量的作用域,javascript变量的命名规则,内容如对您有帮助,希望把文章链接给更多的朋友!

变量作用域是程序中定义这个变量的区域。先来看一段示例:

/* 代码1 */

全局作用域与局部作用域全局(global)变量的作用域是全局的,在Javascript中处处有定义;而函数内部声明的变量是局部(local)变量,其作用域是局部性的,只在函数体内部有定义。对于下面的输出读者应不会感到意外。/* 代码2 */

全局变量作用域中使用变量可以不用var语句,但在声明局部变量是一定要使用var语句,否则会视为对全局变量的引用。看下面代码:/* 代码3 */

没有块作用域Javascript没有块级作用域,函数中声明的变量在整个函数中都是有定义的。对于下面的代码对于生疏的读者可能颇感意外:/* 代码4 */

由于语句4.1(var scope = "local";)声明的变量在整个checkScope函数作用域内都有效,因此在语句4.2(document.write(scope); )执行的时scope引用的是局部变量,而此时局部变量scope尚未定义,所以输出”undefined”。因此一个好的编程习惯是将所有的变量声明集中起来放在函数的开头。

在了解了上述内容之后,读者再看看代码1应该不会感到困惑了。对象的属性变量对象的属性变量比较容易理解,看一下下面的代码读者应该不会感到疑惑。/* 代码5 */

所谓作用域,就是说这个变量在代码块中的有效范围。如果不理解 JavaScript 作用域,调试代码的时候可能会比较困难。

在函数中,如果用var来声明一个变量,那么该变量的作用域就只限于该函数内部,函数外的代码无法访问该变量。如果在该函数中再声明一个函数,那么这个内部的函数也可以访问这个变量。

反过来,如果声明变量的时候没有用var,那么此变量的作用域就不局限于这个函数了。JavaScript 引擎会再全局范围中检查该变量是否被定义过。如果该变量没有被定义过,那么它就会被定义为一个全局变量。

函数可以访问相同作用域中的变量:

JavaScript变量的作用域全解析(javascript 变量)

变量作用域之外的代码不能访问该变量:

不用作用域中名称相同的变量,有不同的值:

函数定以后可以看到函数内变量值的改变:

作用域也会穿越 — 闭包

综合

所谓作用域,就是说这个变量在代码块中的有效范围。如果不理解 JavaScript 作用域,调试代码的时候可能会比较困难。

在函数中,如果用var来声明一个变量,那么该变量的作用域就只限于该函数内部,函数外的代码无法访问该变量。如果在该函数中再声明一个函数,那么这个内部的函数也可以访问这个变量。

反过来,如果声明变量的时候没有用var,那么此变量的作用域就不局限于这个函数了。JavaScript 引擎会再全局范围中检查该变量是否被定义过。如果该变量没有被定义过,那么它就会被定义为一个全局变量。

函数可以访问相同作用域中的变量:

变量作用域之外的代码不能访问该变量:

不用作用域中名称相同的变量,有不同的值:

函数定以后可以看到函数内变量值的改变:

作用域也会穿越 — 闭包

JavaScript中的this关键字使用详解 和其它许多面向对象的语言一样,JavaScript中也有this关键字,this在函数中用来指向调用此方法的对象。实际编程中要判断this到底指向谁,一般可遵循以

关于JavaScript的变量的数据类型的判断方法 虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number、String、Boolean、Object、Udefined、Null。其中,Object属于复杂数据类型,Object

JavaScript中var关键字的使用详解 作用声明作用;如声明个变量。语法varc=1;省略var在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的。scriptt

标签: javascript 变量

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

上一篇:再JavaScript的jQuery库中编写动画效果的指南(javascript如何)

下一篇:JavaScript中的this关键字使用详解(Javascript中的this)

  • 增值税专用发票抵扣期限
  • 缴纳以前年度所得税怎么做账
  • 简易征收 抵扣进项
  • 车船税保险公司会不会多收
  • 通用机打发票内容可以随便写吗
  • 工业企业开票税率
  • 什么是非居民个人的工资薪金
  • 门票可以直接入账吗
  • 增值税专票税种
  • 一般纳税人月销售额多少免征增值税
  • 事业单位退休职业年金发放多少个月
  • 债务重组损失是否属于营业外支出
  • 房屋租赁收入核定征收
  • 负债必须通过转让来清偿
  • 旅游业差额开票的票据可以累计一季度吗
  • 递延所得税资产是什么
  • 增值税专用发票抵扣期限
  • 出口不退税怎么做账
  • 暂估收入会计处理
  • 开店卖蔬菜
  • 案例分析关于拟建科学馆的请示报告
  • 经营用的固定资产
  • 合伙企业分配比例税法规定
  • 超市收取的返利的税收处理
  • macos10.10.5怎么升级
  • 鸿蒙系统大文件夹怎么调节大小
  • php stream_get_meta_data返回值
  • 固定资产内部抵消
  • 待抵扣进项税额贷方表示什么
  • 企业收到分红款,要怎么处理才合理
  • 潘塔纳尔湿地位于巴拉圭盆地
  • 物业费可以分期付款吗
  • 应付职工薪酬负数风险
  • 民办非企业单位登记管理暂行条例
  • 应收票据确认坏账怎么处理
  • 资产处置损益计算公式
  • 写一个简单的php程序代码
  • pdclient
  • python如何获取列表元素
  • 帝国cms使用手册
  • SQL(MSSQLSERVER)服务启动错误代码3414的解决方法
  • 向境外股东分配股息预提所得税
  • 营业外收入 销项税
  • 汽修厂的发票开的是什么票
  • 个人股东和法人股东分红纳税
  • 一个月没钱
  • 来料加工的账务处理新收入准则
  • 个税手续费怎么计算
  • 年终奖个税计税方式
  • 什么是无形资产包括哪些
  • 培训发票能抵扣吗
  • 企业买车计入什么科目
  • 员工的探亲费应由谁支付
  • 小规模纳税人劳务派遣差额征税税率
  • 账务核对包括账表核对吗
  • 法人的加油费能抵所得税吗
  • 一般纳税人会计分录
  • 库存商品成本差异怎么结转
  • win10安装mysql5.6
  • mysql数据库远程备份和恢复
  • ubuntu 18.04防火墙
  • win8怎么进去安全模式
  • xp开始菜单栏怎么还原
  • pe硬盘安装win7系统教程
  • linux怎么使用无线网卡
  • 如何删除win7
  • win7 64位系统玩英雄联盟lol频繁提示failed to create dump file error 183的解决方法
  • linux cp命令怎么用
  • linux升级内核要重启吗
  • linux系列
  • unity做app开发
  • 纯css实现轮播图
  • Node.js中的核心模块包括哪些内容?
  • dos常用命令与批处理文件
  • 给a标签加css的伪类
  • 怎么使用vue和axios连接后端
  • android设计模式的应用场景
  • Underscore.js 1.3.3 中文注释翻译说明
  • jquery给td设置内容
  • 浙江税务局网络发票页无法打字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设