位置: 编程技术 - 正文

浅析四种常见的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中的数组可以存放任何类型的数据)

  • 新成立的公司不开户可以吗
  • 合同甲方乙方收钱付钱涉及什么税金
  • 税务鉴定收费标准
  • 财务软件费用可以抵税吗
  • 税筹是什么意思,有哪些工具
  • 账面成本包含增值税吗
  • 实验用品包括实验仪器吗
  • 签合同前的费用由谁承担
  • 小微企业和小规模纳税人的区别
  • 销售费用变动率税收政策
  • 企业递延所得税费用的计算公式
  • 所得税筹划的意义
  • 职工教育经费8%怎么算
  • 不是单位职工个税怎么算
  • 农产品进项抵扣及申报表填写案例
  • 公司年底奖金怎么算
  • 交通运输业安全员证
  • 股东补亏资金
  • 不征税收入和免税收入有什么区别
  • 哪些费用应该计税
  • 7月1号出台的政策
  • 文化事业建设费税率
  • 委托加工物资增值税怎么计算
  • 正常工资薪金本期收入含哪些
  • 企业所缴税款能抵税吗
  • 服务业结转成本怎么算
  • 外地预缴增值税可以抵本地增值税
  • 付临时工工资计入什么科目
  • 个体户开劳务费发票需要交哪些税
  • php 7z
  • 支付人工费会计科目
  • macbook隐藏
  • macos big sur使用技巧
  • 天猫魔合
  • 单位和个人交付的区别
  • 合作社分红怎么计算
  • eclipse php wamp配置教程
  • 开源项目排行榜
  • 基于车联网
  • redis常见问题解决
  • phpstudy修改php版本
  • 消耗性生物资产的账务处理
  • 非一般纳税人怎么报税
  • 会计损益类科目核算
  • 补充医疗保险属于什么
  • 劳务费可以开普票吗
  • 差旅费津贴要交税吗怎么算
  • 用友t3核算管理如何取消记账
  • 实收资本属于限定性净资产吗
  • 工资算营业成本还是管理费用
  • 高新技术企业外债便利化额度试点重庆
  • 企业预付款属于负债吗
  • 应收票据的分录怎么做
  • 充话费送手机业务
  • 如果对装修费用有异议怎么办
  • 分公司可以独立签约吗
  • 股权转让的会计分录
  • 企业持有的能够对被投资单位实施控制的长期股权投资
  • 企业所得税必须预缴吗
  • cmd shutdown命令
  • mac怎么隐藏桌面文件
  • linux安装iso软件
  • win10预览设置
  • 虚拟机打不开linux
  • linux在vim编辑器中,将光标移动
  • css并集
  • opengl api version
  • easyui grid
  • JavaScript中的变量名不区分大小写
  • 手机端apk反编译工具_android反编译工具
  • windows捕获文件夹
  • android实现底部菜单
  • linux给本地用户发邮件
  • js中的类是什么
  • Android Design Support Library
  • 江苏地税电子税务局官网登录
  • 湖北税务登记办理流程和方法
  • 上饶税务局电话号码
  • 哪些情况要交房租
  • 建筑公司报销流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设