草庐IT

索引优化

全部标签

javascript - 使用具有高级优化功能的 Closure 编译器时如何在 javascript 中保留全局变量?

我有自己的Javascript库,我想通过使用具有高级优化功能的Google闭包编译器来缩小它。通过查看docs我看到了如何声明在库外使用的函数。但是我找不到一种方法来保存在我的库中声明的全局变量。Closure编译器只是删除它们,因为它认为它们从未被使用过。有人可以帮忙吗?编辑:示例代码:varvariable_1=true;这是在我的库开始时全局定义的,但它从未在库本身中使用过。当它包含在某些页面中时,它会在库外使用。但是Closure编译器不知道,这就是它删除这些声明的原因。 最佳答案 闭包编译器无法移除声明为window["

Javascript 数组索引基础

我不确定Javascript引擎(特别是浏览器引擎)如何存储数组。例如-这会使用多少内存?varx=newArray(0,1,2,1000,100000000);我想将整数日期映射为数组索引,但我需要确保这不是一个坏主意。 最佳答案 数组的“特殊”之处仅在于几个方面:他们从他们的原型(prototype)(“slice()”等)中获得了一些有趣的类数组方法他们有一个“神奇的”length属性,可以跟踪最大的数字属性“name”如果您将某些内容存储在全新数组中的位置10299123处,运行时不会耗尽您分配实际空数组的所有内存。相反,它

javascript - 优化javascript代码以使用整数运算

有一些算法可以“非常好”地解决问题,前提是“非常好”意味着最小化浮点算术运算的数量以支持整数算术。以Bresenham'slinealgorithm为例为了弄清楚要填充哪些像素以便在Canvas上画一条线:这个人几乎只用了一些简单的整数运算就使整个过程变得可行。这种事情在很多情况下显然是好的。但是,在javascript中需要大量float学运算的操作值得担心吗?我知道就语言规范而言,一切都几乎是十进制数。我想知道是否实际上尝试让事情尽可能接近整数是否值得——浏览器是否进行了优化以使其值得? 最佳答案 您可以在javascript中

javascript - const 与内联字符串文字,编译优化

这不是问题,而是基于代码结构对V8优化的探索。我和另一位开发人员正在就V8的编译优化争论conststringliteralvsinlinestringliteral的值(value)。当然,假设我们始终处于严格模式。这里有一些代码示例放在上下文中:常量constNAME="something";functiondoSomething(s){returnNAME+s;}对比内联字符串functiondoSomething(s){return"something"+s;}我们的共识:-const为魔法值提供更多上下文,从而简化维护。我们不同意的地方:我说const的使用允许V8编译时优化

javascript - 将数组连接到自身是否比遍历数组以创建更多索引更快?

我刚刚浏览了three.jsgithub页面上示例的源代码,我发现了这个ImprovedNoise类,它基本上是一个Perlin噪声脚本:https://github.com/mrdoob/three.js/blob/master/examples/js/ImprovedNoise.jsImprovedNoise函数的最顶部是这样的:varp=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,

javascript - 如何通过索引号突破 .each()

我想将列表中的每三个项目分开并为那个child添加一个类(class);1234567有什么想法吗? 最佳答案 你应该使用第nth-child伪选择器$("ulli:nth-child(3n)").addClass("break-here"); 关于javascript-如何通过索引号突破.each(),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10154647/

Javascript - 嵌套for循环索引的范围

我记得变量在Javascript中是函数范围的。但是,如果我在循环中重新定义局部变量,行为会怎样。一个常见的用例是嵌套循环。在下面的代码中,如果我将j更改为i,则外部for循环在一次迭代后终止,因为i在外部范围内的值与内部for循环相同。因为我使用var,所以我期待(类似于其他语言)它在内部fo循环中被重新定义。这是否意味着在JS中,没有办法在函数范围内重新声明和使用局部变量。for(vari=0,len=x.length;i 最佳答案 如您所说,JavaScript只有函数作用域。变量声明被提升到声明它们的范围的顶部。你的例子是这

javascript - 如何从 native react 中的 FlatList 中删除项目/索引?

我有一个呈现为View的数据,遇到了一个关于如何删除被刷过的特定索引的问题我按如下方式使用了FlatListrender(){this.leftOpenValue=Dimensions.get('window').width;this.rightOpenValue=-Dimensions.get('window').width;return(data.id}renderItem={({item})=>({item.title}//Thisrepeats9times(9Index)}renderRightView={()=>()}leftOpenValue={this.leftOpenV

javascript - 设置回调数组并尝试使用数组索引作为回调中的值

当我以这种方式设置回调数组时,我在对话窗口中得到20个所有回调。我想改为获取数组中的索引。这可能吗?调用回调的函数期望回调有一个参数。我不控制回调的调用者,因为它是外部库的一部分。感谢您的帮助。for(vari=0;i 最佳答案 因为i在函数被调用时被评估,你需要在新的函数执行中限定i的值,以保留你期望的值.//returnsafunctionthatclosesaroundthe`current_i`formalparameter.varcreateFunction=function(current_i){returnfuncti

javascript - 如何在不使用 YUI 索引的情况下查看 javascript 数组?

我知道jQuery和原型(prototype)有一个$.each()函数用于遍历数组中的每个元素。YUI对此提供任何帮助吗? 最佳答案 YAHOO.util.Dom具有批处理函数,签名如下:Any|Arraybatch(el,method,o,override)其中el是DOM元素或DOM元素数组,method是一个函数,它将数组中的每个元素作为其第一个参数传递,o是可选的第二个参数,override是一个bool值,用于确定范围应该是window(false)还是o(true)所以你可以这样调用它:functionsetDispl