草庐IT

优化问题

全部标签

javascript - let 关键字的问题

我在玩一些代码时遇到了一种情况,我无法确定为什么“让”以它的方式运行。对于下面的代码块:varx=20;//globalscopefunctionf(){letx=x||30;}f();//VM3426:1UncaughtReferenceError:xisnotdefined(…)我在执行f()时收到错误“xisnotdefined”。我确实理解“让”变量没有提升,但由于“x”具有全局副本,为什么函数“f”内的行不默认为全局副本而不是抛出错误?是否在函数开始时“让”将变量设置为未声明(而不是因为提升而使用var设置为“未定义”)?有没有办法在函数中获取“x”的全局副本?

javascript - v4 中的 d3 缩放功能问题

我在使用v4时遇到D3中的缩放功能问题。它抛出一个错误,指出zoom.translate未定义。我主要使用此答案中的以下代码d3focusonnodeonclick,这对v3非常有效。但是,由于我在使用v3时遇到问题,因为它对源和节点采用字符串形式(而不是索引)的数据有限制D3JSONfilewithsourceandindexasstringsratherthanindices,我切换到v4..linksline{stroke:#999;stroke-opacity:0.6;}.nodescircle{stroke:#fff;stroke-width:1.5px;}varsvg=d3

javascript - 如何优化接受正整数并返回下一个较小正整数的函数?

我正在尝试编写一个函数,它接受一个正整数并返回包含相同数字的下一个较小的正整数,如果没有包含相同数字的较小数字则返回-1。Forexample:nextSmaller(21)==12nextSmaller(531)==513nextSmaller(2071)==2017我写了一个解决这个问题的代码,但我真的不知道如何进一步优化它。请你帮助我好吗?它在repl.it上运行得相当快,但是当我提交它时,它说它需要超过1200毫秒并且不允许我提交它,即使所有测试都通过了。functionnextSmaller(n){varnArray=n.toString().split("")varmini

javascript - Function() 构造函数是否没有像 eval 那样被 V8 优化?

我们正在尝试一种通过WebSockets接收网络组件的方法。这些组件包含自定义脚本,它们应该在组件内的上下文中运行。简而言之,我们有一些脚本字符串并想要运行它们。现在我们为此使用eval,像这样:functionctxEval(ctx,__script){eval(__script);//returnthingswiththectx}并按预期工作,但我读到任何包含eval的函数都没有被V8优化。我想像这样将它转换为newFunction():newFunction("ctx",__script)(ctx);这样我可以实现与上面的ctxEval函数相同的效果。我们知道Function是e

javascript - Jasper 报告 Highcharts 的 plotOptions.fillColor 颜色问题

我正在使用自定义可视化组件和Highcharts在JaspersoftStudio6.4中开发一份报告。长话短说,在绘制气泡图或面积图时,plotOptions.fillColor-attribute无法正常工作,但会使气泡内部或堆积面积图的内部变黑。黑色通常表示未找到颜色,但面积图中的气泡线/线可以正常工作。下面是面积图的Highcharts脚本:define(['jquery_hc','hchart'],function($,Highcharts){ returnfunction(instanceData){ //Creatingthechart varconfig={chart

javascript - 在 unicode 问题上用正则表达式替换/替换所有

有没有办法将replace方法应用于一般的Unicode文本(这里关注阿拉伯语)?在下面的例子中,虽然替换整个单词在英文文本上效果很好,但它无法检测到,因此替换了阿拉伯语单词。我添加了u作为启用unicode解析的标志,但这没有帮助。在下面的阿拉伯语示例中,应替换单词النجوم,而不是والцوم,但这并没有发生。Clicktoreplace...replacefunctionmyFunction(){varstr="الشمسوالقمروالنجوم،ثمالنجوموالنهار";varrep='النجوم';varrepWith='الليل';//varstr="the

javascript - Web 扩展中的共享 vuex 状态(死对象问题)

我正在尝试在Web扩展中使用共享的vue.js状态。状态存储在后台脚本的DOM中并呈现在弹出页面中。第一次尝试我的第一次尝试是使用一个没有vuex的简单商店:背景.jsvarstore={count:0};弹窗.jsbrowser.runtime.getBackgroundPage().then(bg=>{varstore=bg.store;varvue=newVue({el:'#app',data:{state:store},})})popup.html{{state.count}}+这在第一次打开弹出窗口时有效(您可以递增计数器并更新值)但是当第二次打开弹出窗口时,渲染失败并显示[

javascript - 等待 promise 链有什么问题?

我正在开发Angular6应用程序,有人告诉我以下是反模式:awaitsomeFunction().then(result=>{console.log(result);});我意识到等待promise链是没有意义的。如果someFunction()返回一个promise,那么如果你正在等待它,你就不需要一个promise链。你可以这样做:constresult=awaitsomeFunction();console.log(result);但有人告诉我等待promise链会导致错误,或者它会破坏我的代码。如果上面的第一个代码片段与第二个代码片段做同样的事情,那么使用哪个代码片段有什么关

javascript - 在使用 Angular 删除文件时选择所有复选框时出现问题

这里我正在做的是使用ng2文件上传创建一个“拖放功能”,这里我的问题是当我试图拖放多个文件时,全选功能将被启用,它将全选默认情况下会选中复选框,但在我的场景中,文件删除后不会发生这种情况https://stackblitz.com/edit/angular-r6cbrj1"> AddFilesYouruploadqueueisempty.Draganddropfilestoaddthemtothequeue0"> {{item?.file?.name}}{{item?.file?.size/1024/1024|number:'.2'}}MB{{item?.file?

javascript - 在Electron渲染器进程中持久化nedb到磁盘(Webpack/Electron/nedb配置问题)

问题我正在尝试使用名为nedb的纯JS数据库在Electron渲染器进程中。它使用browserfield在itspackage.json交换基于浏览器的存储系统。这导致我的数据库实际上没有保存到文件中。背景我使用Next.js作为我的View框架,它的Webpack是为渲染线程配置的"target":"electron-renderer"。这显然会导致Webpack处理这些浏览器指令,即使渲染器进程应该可以访问浏览器和NodeAPI。这种行为并没有真正记录下来,所以我不知道如何覆盖它。我尝试过的我已经确认,如果我手动编辑node_modules/nedb/package.json本地