位置: 编程技术 - 正文

浅析四种常见的Javascript声明循环变量的书写方式(简述常用)

编辑:rootadmin

推荐整理分享浅析四种常见的Javascript声明循环变量的书写方式(简述常用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:四种类型,简述常用,浅析四种常见的文献,常见的几种,浅析四种常见的文献,浅析四种常见的文献,常见的几种,最常见的四种类型是,内容如对您有帮助,希望把文章链接给更多的朋友!

Javascript中的循环变量声明,到底应该放在哪儿?

习惯1:不声明直接使用

浅析四种常见的Javascript声明循环变量的书写方式(简述常用)

非常危险的使用习惯,一般情况下循环变量将成为window对象上的一个属性被全局使用,极有可能影响程序的正常逻辑实现。 需要着重提一下的是,在strict模式下,未声明变量而直接赋值的使用方式会直接抛出异常,早就该这么做啦!引用一下ecma-标准附录C中的一段话:"Assignment to an undeclared identifier or otherwise unresolvable reference does not create a property in the global object. When a simple assignment occurs within strict mode code, its LeftHandSide must not evaluate to an unresolvable Reference. If it does a ReferenceError exception is thrown (6.2.3.2)."换言之,如果再使用未经声明的变量的话,ReferenceError异常会被抛出。

习惯2:放在for循环初始语句块中并反复声明

这种方式看似最安全规范,很多从C和Java转到前端开发的同学都偏爱这样的写法,事实上,这也许是由于对Javascript中一个重要概念有所 误解造成的——变量作用域。不同于C和Java,Javascript并不具备真正的块级作用域,也就是说,在第一个循环结束之 后,console.log(i)并不会打印undefined或者抛出ReferenceError异常,而是会正常打印出arr.length。当然,这样的写法虽然除了美观以外意义不大,但是长久以来兼容性良好且没有违反任何规范——ecma标准中并没有禁止在某一个作用域内对于同一变量的重复声明。

习惯3:在函数顶部和其他变量一起集中定义

这种c-like式的变量定义方式在Javascript中几乎无可挑剔,既不会造成Javascript支持块级作用域的误解,又不会污染全 局scope,还不违反任何标准和规范,主要缺点就是循环变量的声明和循环体可能会隔开比较远。在不借助更多代码的前提下,除了等待各大主流浏览器厂商实现ECMAScript 6中的let关键字以外,这个问题似乎找不到更好的解决方案。

习惯4:将循环代码封装到IIFE中

最后一种习惯是前端程序员们熟悉的IIFE(Immediately-Invoked Function Expression),即立即执行函数。此种方法的主要缺点是书写相对麻烦,且有多余的性能损耗(很小),但在兼容性、对各标准规范的遵循上表现良好。 如果不嫌麻烦,开发者可以采取这种方式。

标签: 简述常用

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

上一篇:基于js 字符串indexof与search方法的区别(详解)(js字符串includes)

下一篇:Javascript中的数据类型之旅(javascript中的数组可以存放任何类型的数据)

  • 小规模纳税人纳税申报时间
  • 小规模转一般纳税人需要什么条件
  • 小规模纳税人季报还是月报?
  • 计划成本下存货盘盈
  • 红字信息表跨月了还能开吗
  • 现金存入银行会计摘要怎么写
  • 关联企业间无偿资金的占用属于借款费用吗
  • 企事业承包承租方缴纳的管理费税费
  • 分配利润怎么做科目
  • 应收票据计入应收账款吗
  • 广告公司收到专票怎么做成本
  • 制造费用可以抵扣进项税吗
  • 固定资产的确认条件有哪些
  • 一般纳税人附加税费减免政策
  • win11前面板耳机没声音
  • 电脑主板上的电池没电了会怎么样
  • macbook做bim
  • explorer.exe是啥意思
  • php字符串函数大全
  • php 字符串函数
  • html页面中利用______标签可引入jquery库
  • 禁止扣除项目有什么
  • 政府性基金收入怎么收
  • 资本公积和盈余公积的提取比例
  • 带壳的栗子 (© Kai Keisuke/Shutterstock)
  • 格里戈里耶奈尔尤伯夫
  • 长期股权投资顺逆流交易的损益调整
  • axios请求设置超时时间
  • 发行股票溢价计入
  • vue3怎么样
  • 企业已开出的成本怎么算
  • linux 高并发网络编程
  • php判断时间区间
  • 基于thinkphp开发的框架
  • 生育保险具体待遇是什么
  • 小规模固定资产处置税率
  • 预缴税款计入什么科目
  • pyqt5 pycharm
  • el-form表单
  • 发票退票和废票的区别
  • 委托加工物资实际成本包括增值税吗
  • 土地使用权的核算
  • 单位收风险金是什么意思
  • 捐赠 赞助 区别
  • 收到的货品与实物不符
  • 进口增值税已抵进项税额
  • 公司开出发票但未收到款如何写分录?
  • 为什么其他权益工具投资处置价差计留存收益
  • 年金终值计算公式是
  • 将外购商品作为非货币
  • 人力资源外包服务平台
  • 应付账款会计分录例题
  • 收到进项发票不认证抵扣的会计分录
  • 劳务报酬如何记账
  • 消防安装公司属于什么行业
  • 新冠肺炎疫情相关租金减让
  • 有进项无销项如何申报
  • 小企业应收账款减值
  • freebsd怎么用
  • 用u盘怎么装系统win10
  • win7系统调节亮度快捷键
  • ubuntu搭建nginx服务器教程
  • centos7 ip forward
  • ubuntu系统安装教程
  • ubuntu系统怎么修改root密码
  • os x10.11el capitan beta6更新了什么?os x10.11el capitan beta6发布下载
  • spmgr.exe - spmgr是什么进程 有什么用
  • 在windowsxp中设置控制计算机硬件设备
  • win7 windows检测到ip地址冲突怎么解决
  • win7系统打开excel文件很慢或未响应
  • 一个字符串中某个字符串出现的次数
  • 导入extjs、jquery 文件时$使用冲突问题解决方法
  • 读长沙师范学院收费多少钱
  • js基于什么
  • jquery 操作json
  • 要使物体从静止状态转变为运动状态需要对这个物体什么
  • 地税局纪检组长黄斌简历
  • 网约车考试全国过了区域没过
  • 73平方的房子有多大
  • 沈阳市地方税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设