今天在项目中,突然发现一个问题,在 javascript 中,重复多次的定义同一个变量有什么危害呢??
1
learnshare 2015-11-30 16:08:22 +08:00
覆盖掉了之前的声明,或许连作用域也改了。
反正是不建议重复声明 |
2
Felldeadbird 2015-11-30 22:58:52 +08:00
记得有这么一件事。某个功能同事写的,他把一个原有的变量覆盖了。后面的用到盖变量的业务数据全乱了。然后呢,采购那边表格数据看都不看,就直接下采购单了。。。最后我被罚了。
|
3
SoloCompany 2015-12-01 02:28:30 +08:00
我来唱一下反调
我觉得,严格来说,没有危害 首先 javascript 里面没有块作用域(假定楼主不是在讨论 ES6 的 let ) 如果是函数作用域里面的,写和不写 var 完全不等价,多写一个 var 不在「重复多次定义」的范畴内 而如果在同一个作用域之内(比如不同的块),多写一个 var 并不会产生任何副作用,相反他会给你带来多一重保险 比如下面的代码 for (var i =1; i < 10; …) { // do something } for (var i = 2 …) { // do something } 第二个 for 里面的 var 不管你写不写, i 的初始值都是 10 (当然,重新赋值后变成了 2 ) 某些编译器(比如 IDEA , WebStorm 等)会给你个警告,因为变量重复定义 假如某一天,前面的第一段代码被意外删除了,那么第二段代码因为多写了个 var ,就有了多一重保险,不会因为前面的代码的意外删除而导致作用域泄露 分析到这里,有不同意见欢迎提出 |
4
yuriko 2015-12-01 18:13:58 +08:00
|