服务与支持 |咨询热线 0931-8733767
  • 金城在线
  • 公司简介
  • 发展历程
  • 企业文化
  • 售后服务
  • 工作机会
  • 联系我们

在写JS的时候习惯在哪里声明变量?为什么?

来源:发布时间:2017-9-13 10:17:10

        我不支持前置声明,理由:

        1、前置声明前置到哪呢?答案当然是前置到最近的一个Function作用域,但你要知道这个“最近的一个Function作用域”说起来简单,但实际过程中它老尼玛会变,对不对?因为我们的代码是不断重构的,可能为了复用,随时就把一段代码框起来变一个局部函数,或者匿名函数,这时那堆前置声明就得搬搬搬。

        2、如果不靠工具来保证,你又怎么知道一个变量有没有前置声明过呢?当我要用到一个变量名的时候,我还得跑到顶上去查一下,因为我怕别人用过了这个变量名,并且不知道它仅仅是为了一句for循环定义的,还是为了把它定义成一个“局部全局变量”定义的,这个检查的过程可能横跨几十上百行代码,想想不蛋疼?

        3、接1,如果我们图简单,或者想减少重构的时候搬移变量声明的成本,可能会把一些变量搬到更外层的Function作用域里面——毕竟全局变量用起来就是个舒服。久而久之会有一些很恐怖的隐患:因为底下的闭包太多了,持有这群变量的函数很多会有超长生命周期(比如监听器),这会造成大量的变量被间接引用,无法回收,但其实他们本来就没啥用了。这等于说写程序的时候本来只用关注小范围的声明周期,现在需要扩大这个视野了,这是一种负担。


相关文章
  • 预约专家

    为您提供一对一解决方案
    立即预约
  • 售前咨询

    周一至周五9:00——17:30
    立即咨询
  • 联系方式

    13919049954

    全国7×24小时热线服务
  • 免费报价

    专属专业顾问1对1报价
    免费报价