gpt4 book ai didi

javascript - 使用 jshint 遵守最大长度设置

转载 作者:行者123 更新时间:2023-11-29 19:33:03 28 4
gpt4 key购买 nike

我看到一些关于在编写 javascript 时遵守 80 个字符的最大行长度的建议,例如谷歌、npm、Node.js、Crockford。然而,在某些情况下,我看不出如何做到最好。举个例子

MongoClient.connect('mongodb://localhost:27017/sampleDatabase', function(err, database) {
if(err) {
throw err;
}
db = database;
});

这会引发 jshint 警告,因为它超过了 80 个字符。现在,您会选择忽略这种情况下的警告,还是选择诸如

之类的解决方案
MongoClient.connect('mongodb://localhost:27017/sampleDatabase', 
function(err, database) {
if(err) {
throw err;
}
db = database;
}
);

最佳答案

如果可以重用url变量,Andy's是一个很好的选择。如果是一次性的,就像这样的电话一样,我可能会做这样的事情......

/*jslint sloppy:true, white:true, browser: true, maxlen:80 */
/*global MongoClient */

var dbErrHand, db;
dbErrHand = function(err, database) {
if(err) {
throw err;
}
db = database; // Killing me with the global spaghetti! ;^)
};

MongoClient.connect(
'mongodb://localhost:27017/sampleDatabase',
dbErrHand
);

那样的话,你的代码会更有表现力,而且你知道你连接的是什么数据库,尽管 Andy 只需要将 var url 更改为 var mongoSampleDb 或类似于获得同样的优势。

我喜欢把函数拉出来,这样你就可以直观地理解它们是相当独立的逻辑片段,尽管我意识到如果你把它放在 中的单独行中,它不会超过 80 个字符连接 调用。会认为该代码也可以在您的应用中重用。

拉出功能也是一个很好的习惯,这样你就不会不小心make a function inside of a loop .[1]

当然,您仍然有可能最终得到非常长的字符串,并且必须执行类似...

MongoClient.connect(
'mongodb://whoLetFredNameThisServerBecauseItsTooLong.FredsCompany.com:27017'
+ '/sampleDatabase',
dbErrHand
);

嵌套代码中的良好空白进一步加剧了这个问题,这可能对 Andy 在任何循环/ifs/嵌套代码之外设置这样的变量的想法 +1。在某些时候,关闭 maxlen 可能是值得的。

但是括号处理是最主观的决定之一,尤其是在 JavaScript 中,那里没有很好的、先验答案。有些人对我的每行参数代码感到疯狂,或者更喜欢 ( 在它自己的行上,就像这样......

MongoClient.connect
(
'mongodb://localhost:27017/sampleDatabase',
dbErrHand
);

令人惊讶的是,JSLint 仍然为您提供了足够的 self 表达空间! ;^)

[1] 裙带关系问题链接警报,虽然这是我用谷歌搜索到的第一个。可能是 Google 将我的结果偏向于我的一个例子。

关于javascript - 使用 jshint 遵守最大长度设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26422491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com