这个问题是在考虑node.js服务器时提出的,但是我将问题称为"javascript",因为我也可能将同样的逻辑用于客户端脚本.
这是问题所在:给定一组x值,y需要以对数方式进行缩放.Math对象执行自然log [ ln(x)],但不提供用于指定对数基数的接口.
对于一个具体的例子,我需要找到以下内容:
log[512](2)
哪个应该返回.1111~
但是,我没有看到允许我完成此操作的界面,我也无法找到公开日志基础选项的库.当然这是一个常见的问题并且有一个解决方案,但我的搜索只找到了解决不同/无关问题的方法.想法?
以下是在闭包中定义匿名函数,调用函数并忘记它的方法:
(function () { "do stuff"; })();
Run Code Online (Sandbox Code Playgroud)
这用于维持有限的范围而不向脚本添加批量(IIFE:立即调用的函数表达式).
如果您希望立即执行某个功能,同时仍保留该功能以供将来使用,如下所示:
var doThing;
(doThing = function () { "do stuff"; })();
Run Code Online (Sandbox Code Playgroud)
这适用于我测试的浏览器(Chrome,FF,IE8,IE10),但这不会传递JSLint(错误调用).这样做有兼容性问题吗?
是否有一种方法可以实现这一点,JSLint看起来很友好?
我对JavaScript有点新意.我已经在客户端使用它一段时间了,但现在我冒险进入服务器端Javascript.这个问题是关于Javascript对象,关于它们的创建和它们的属性的有效定义.
我已经看过(好几次)创建一个对象,因为性能原因var o = {};现在更喜欢它var o = new Object();.在向对象添加属性方面的性能是否存在差异?
例如,这种情况之间的性能是否有任何差异:
var o = {
thing1: "yardigooven",
thing2: "goovenyardi",
};
Run Code Online (Sandbox Code Playgroud)
这种情况?:
var o = {};
o.thing1 = "yardigooven";
o.thing2 = "goovenyardi";
Run Code Online (Sandbox Code Playgroud)
我假设第一种情况是首选,但我想确保在以这种方式编写所有对象定义之前.
谢谢.
javascript ×3
function ×1
iife ×1
jslint ×1
logarithm ×1
node.js ×1
object ×1
performance ×1
properties ×1