小编mis*_*nic的帖子

JavaScript性能:多个变量还是一个对象?

这只是一个简单的性能问题,帮助我理解javascript引擎.为此,我想知道,更快的是:为某些值声明多个变量或使用包含多个值的一个对象.

例:

var x = 15;
var y = 300;
Run Code Online (Sandbox Code Playgroud)

var sizes = { x: 15, y: 300 };
Run Code Online (Sandbox Code Playgroud)

这只是一个非常简单的例子,当然可以在一个真实的项目中有所不同.这甚至不重要吗?

javascript performance

22
推荐指数
3
解决办法
6372
查看次数

Webpack:通过文件加载器复制 JSON 文件

我正在使用 Webpack module.loaders,并file-loader在编译时复制几个 js 文件:

module.loaders = [
    { test: /app\/locale\/moment\/.*\.js$/, loader: "file-loader?name=locale/moment/[name].[ext]" }
];
Run Code Online (Sandbox Code Playgroud)

这对我来说效果很好。
我想对 JSON 文件做同样的事情:

module.loaders = [
    { test: /app\/locale\/.*\.json$/, loader: "file-loader?name=locale/[name].[ext]" }
];
Run Code Online (Sandbox Code Playgroud)

但这一次它什么也没做。
为什么 Webpack 在使用文件加载器时会区分 js 文件和 json 文件?

javascript json webpack

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

关于Travis CI的QUnit(PhantomJS超时)

每当我尝试在Travis上进行QUnit-Test时,构建都会因PhantomJS超时错误而失败.请参阅:第86行的https://travis-ci.org/misantronic/frameWreck/builds/38939015.

在我的本地系统上一切正常.

它实际上加载了所有源(QUnits.js和我的js-module),但是一旦调用了test()函数,它就会失败.

我发现了一些关于这个问题的主题,但这些都是因为grunt版本号(<0.4).不是这样的.

continuous-integration phantomjs gruntjs

5
推荐指数
0
解决办法
341
查看次数

AudioContext:将音量增加 x 分贝

我正在使用 AudioContext() 进行听力测试,我想知道如何将音量提高/降低 x dB。甚至有可能吗?

目前,我有一个 GainNode 连接到我的 AudioContext,它看起来(简而言之)如下:

var context = new AudioContext(), gainNode;
context.decodeAudioData(req.target.response, function(buffer) {
    gainNode = context.createGain();
    ...
}
Run Code Online (Sandbox Code Playgroud)

要更改音量,我这样做:

gainNode.gain.value = {-1 to 1}
Run Code Online (Sandbox Code Playgroud)

在这里,我没有机会准确定义 dB 值。还有其他方法吗?

我认为问题是,浏览器永远不知道扬声器发出的声音的确切音量,因此没有计算新的 dB 音量的基础。

确定当前 dB 值的一种方法是通过 2 个声音的差异,例如测试声音(白噪声)和语音数字。为了计算差异,我找到了公式:

20 * Math.log10(gainNoise / gainSpeech);
Run Code Online (Sandbox Code Playgroud)

然后我有一个基数,例如 -6 dB,当语音是 -0.6 并且噪音是 -0.3 时。但是如何将这个值提高一个特定的 dB 值?

示例:我将 -6 dB 提高 5 dB 至 -1 dB。如何重新计算语音/噪音?

html javascript math audio audiocontext

0
推荐指数
1
解决办法
1545
查看次数