文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
最后的例子
作为本章最后一个例子,我们要给出一个能演示目前为止我们所讨论过的多条原则的例子。
假设你有一个网页,上面有几个文本输入字段,布置如下:
如你所见,id从input1开始增加。
你的工作是写一个叫setFirstEmptyInput()的函数,它接受一个字符串并把它放在页面上第一个空的<input>字段中(在给出的示例中是"input3")。这个函数应当返回已更新的那个DOM元素(如果没有剩下任何空字段则返回null)。下面是完成这项工作的代码,它没有遵守本章中的原则:
这段代码可以完成工作,但看上去并不完美。什么地方不对?如何改进?
有很多途径可以用来思考对这段代码的改进,但我们会从它所使用的变量这个角度开始考虑:
·var found
·var i
·var elem
所有三个变量都存在于整个函数中,并且写入了多次。让我们来尝试改进它们中的每一个。
如我们在本章前面讨论过的,中间变量(如found)通常可以通过提前返回来消除。下面是这一点改进:
接下来,看一下elem。它在整个代码中以循环的方式多次用到,这让我们很难跟踪它的值。这段代码让我们觉得elem就是在迭代的值,实际上只是在累加i。所以把while循环重写成对i的for循环。
特别地,请注意elem是如何成为一个只写一次的变量的,它的生命周期只在循环内。用true来作为for循环的条件并不多见,但作为交换,我们可以在同一行里看到i的定义与修改。(传统的while(true)也是个合理的选择。)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论