小编And*_*rés的帖子

带有 Jest 的 NODE_ENV

我正在从 Mocha 迁移到 Jest。我的测试导入了 'config' 包,它根据 NODE_ENV 变量选择一个或另一个配置文件。但是,从 Jest 运行测试时,配置似乎找到了 NODE_ENV 变量

下一行不起作用(即忽略 NODE_ENV):

 NODE_ENV=test jest test/*.js --notify --config jest.config.json
Run Code Online (Sandbox Code Playgroud)

因此,“配置”包报告:

console.error node_modules/config/lib/config.js:1727
WARNING: NODE_ENV value of 'test' did not match any deployment config file names. 
Run Code Online (Sandbox Code Playgroud)

你知道如何包含 NODE_ENV 吗?

testing mocha.js node.js jestjs

7
推荐指数
1
解决办法
2万
查看次数

值得惯用的编程吗?一个ES6的例子

编程是关于如何实现任何代码的决策.根据这些决定,代码将或多或少地具有可读性,高效性,复杂性等.一个常见的决定也是或多或少地习惯,即使用特定语句或您的编程语言或范例.

作为概念验证,我在Javascript中开发了两个代码片段来分析性能.我们的目标是产生以下形式的字符串tagA|tagB|tagC,其中则数tagX是随机的,后缀A,B,C是随机的整数.而且,tagX不能重演.

第一种实现更惯用,而第二种更传统.接下来是每个代码片段:

成语:

performance.mark('A');

let tags = new Set(Array.from({length: tagCount}, () => Math.floor(Math.random() * 10)));
tags = Array.from(tags).map(x => `tag${x}`).join('|');

performance.mark('B');
Run Code Online (Sandbox Code Playgroud)

传统

performance.mark('C');

let tagset = new Set();
let tagstr = "";

for (let tag=0; tag<tagCount; tag++) {
    tagset.add(Math.floor(Math.random() * 10));
}

tagset.forEach((tag) => {
    tagstr += 'tag' + tag + '|'
});

tagstr = tagstr.slice(0, -1);

performance.mark('D');
Run Code Online (Sandbox Code Playgroud)

为了衡量性能,我使用了Performance Timing API

结果有点令人沮丧,至少对我而言.请注意传统方式如何比其他方式更有效.

Idiomatic: 0.436535
Traditional: 0.048177 …
Run Code Online (Sandbox Code Playgroud)

javascript performance idiomatic node.js ecmascript-6

6
推荐指数
1
解决办法
553
查看次数

parseFloat 数字后带有字符

我有一个输入,用户在其中输入数字、整数或浮点数。我想知道这个数字是否正确,例如检查输入2r是否不正确。我的第一个方法是使用parseFloat,但它并没有抱怨这一点:

parseFloat('2r')   // returns 2
Run Code Online (Sandbox Code Playgroud)

实际上,根据文档,这是预期的行为

你如何检查这2r是错误的?

javascript parsefloat

-2
推荐指数
1
解决办法
1747
查看次数