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

如题所述

第1个回答  2018-03-20

写这js的时候,在那里声明变量,这是一个习惯问题,因为每个人的习惯不一样,每个人得声明变量变量也就不一样。

有些人会写这js声明变量i,这样声明出来的是全局变量,但是在我在编写代码的过程中很不习惯这种方式,但是如果这样写的话,肯定是有种方便的感觉。因为这样在你写代码的时候写到一半,突然你想哦,我要说明这是一个全局的,但是你又懒得回到开头去写出来这样一句,然后你就在函数中来了这么一句i等于一。

其实这样写的话代码确实不好看,但是这样就是省了点事。所以其实在正常的写的过程中,你可以首先是重复声明,并初始化一个变量,就是给他先赋一个值,这样做的目的只是为了方便一些比较粗心的人。所以在写的过程中如果哪天蹦出一个i等于2或者i等于3,你就知道这到底是什么意思了。

其实上面的举例就是说明了一个问题,就是把所有的变量声明,集中起来放置在函数的开头。这作为一个初始编程者来说,这是一个非常好的编程习惯。这样能够让你在中途出现任何的声明变量的时候,能够看得懂他到底是什么意思?其实还应该有一个就是同名变量,可能对这个理论不是很精通的同学,就会出现一些非常让人匪夷所思的问题。就像我们日常生活中对这个人不熟悉,你就会碰到同名同姓而无法区分的问题。

第2个回答  2018-03-20

我觉得我的个人习惯是就近声明变量。

因为读代码的时候要看这个变量什么意思在哪里声明会相对方便点,可读性强,要是声明在顶上,读起来要看这个变量在哪里声明会满屏幕跳。


就近声明

我个人在习惯上是用就近声明的,所谓的原因也就是我觉得就近声明更容易看吧,在第一次使用的位置附近我能看到有“var”声明,可以知道这个变量确实是局部于函数内而不是来自外部环境的;前置声明的话那个var声明可能在几十行之前,不在一个屏幕的显示范围内了,有点不爽的感觉。

前置声明

一般喜欢前置声明的人记忆力大多都比较好,至少可以在记住几十行之前声明的所有局部变量名吧,当然他们也可以说用前置声明就可以有一个地方可以快速知道一个函数里所有局部变量有那些。在var的function-scope而非block-scope的语义下这确实管用。我只是个人爱好不喜欢这样写而已。

理由

“就近声明”的解释里限定“但在循环外”,这个限定其实主要作用是为了提醒读代码的人当循环里有闭包对变量捕获的情况时那个捕获不是对循环体的scope做的;就执行效率来说在循环内外声明(只是裸var声明,不带初始化)都没关系。


总述

选哪个声明完全看个人习惯,但从容易的角度来讲,还是就近声明更省事简单一些。



大家正在搜