13919049954

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

作者: 日期:2017/9/13 10:17:10 人气:37

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

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

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

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


            金城在线专注网站、软件、APP、微信公众平台、小程序、抖音、头条等开发推广,如果您有这方面的需求或者不同的观点,欢迎联系交流。

    官方微信

    本文网址:http://lz.net.cn/zixunzhongxin/289.html
    读完这篇文章后,您心情如何?
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    更多>>网友评论
    发表评论