在同一个JavaScript函数中重用variables的情况:总是否定的?
我刚写完脚本来parsingcsv数据。 最近安装了JShint后,我重新使用了variables。 我最近一直在使用JS,但是我来自一个python背景,重用variables是正常的。 我想知道在下面两个例子中重用variables有什么问题:
用开关循环
下面的循环遍历csv文件中的行,当它传递一个特定的值时,它将variables“currentSwitch”从false切换到true。 currentSwitch跳闸后,循环开始将东西推送到一个数组。
for (f=0; f < data.length; f++){ if (data[f][0] === code){ if (currentSwitch === true){ dataListByCode.push(data[f]); } } else if ((data[f][0]).slice(0,4) === "UNIN"){ var currentSwitch = true; } }
用破碎函数处理数据
我有几个处理数据的函数,保持分离是有意义的。 在下面的代码中,我用一个函数处理,然后用另一个函数处理。
var dataListByCode = addDivideData(dataListByCode); var dataListByCode = addBeforeEntriesArray(dataListByCode, invNumber, matterNumber, client, workType);
谁能告诉我,如果这不符合最佳做法? 这些(或者像他们这样的场景)有什么可能出错的吗?
你不需要重新声明currentSwtich
var currentSwitch = true;
事实上,在循环中重新声明这个variables实际上没有任何意义,在大多数情况下,它几乎肯定不是你真正想要的。
只需在循环开始时初始化/声明一次
var currentSwtich; // or var currentSwitch = false;
并将其设置为true时删除var
:
currentSwitch = true;
基本上你正在做的是创造一个全新的variables,与旧的variables相同,扔掉旧的variables。 这通常不是你想要的。
python中没有类似的概念,因为python不需要声明variables。
重用variables的主要问题是:
a。)在更大的代码块中会变得非常混乱,特别是如果您添加/删除了代码〜20次,并且保持重复使用〜5个variables用于多个事物
b。)任何对代码一无所知的程序员(在几个月/几年之后都会读到)会让您更难以掌握代码。
下面的函数代码片段可以表示为:
var dataListByCode = addBeforeEntriesArray(addDivideData(dataListByCode), invNumber, matterNumber, client, workType);
这是没有问题的。 在这种情况下,分解函数是没有用的,如果你有许多内联函数链,通常表明你需要重新思考对象/函数devise。
- Javascript错误事件使用meteor初学者文件
- 获取第三方链接,使用节点和https本地主机的API
- 如何在Nodejs应用程序中共享configurationvariables
- 在Express和Jade中内联jade.render()?
- 使用graphicsmagick在nodejs上创build图像
- 如何确保正确的parameter passing给循环中声明的函数调用?
- JS错误为:var没有定义。 我如何发送函数的价值
- 在Unity3D C#中encryptionstring,通过HTTP GET请求作为URL参数发送,在node.js服务器中解密
- 在express.js中使用node.js读取params的正确语法是什么?