草庐IT

可变性

全部标签

javascript - 如何覆盖从另一个脚本加载的可变参数

我有一个动态加载代码的脚本。它是一种搜索引擎。当我按下搜索按钮时,将触发操作并打开一个包含许多参数的新页面。我想覆盖新URL中脚本生成的参数之一。JS代码很大而且很难阅读,但我在FirebugDOM编辑器中找到了重要的部分。这是执行搜索时生成的URL的模式:http://www.example.com/...?ParameterOne=123&ParameterTwo=Two&ThisParameter=Sth&ParameterFour=Four...我要编辑的是“ThisParameter”并改变它的值。这是在DOM中编辑的部分,它执行我想要的操作:Foobar={_options

javascript - 导致浏览器崩溃的可变字符串

我发现了一件很奇怪的事情。当你在你的html页面中放置这样的东西时,浏览器(在FF和Chrome上测试)只是停止在这个地方呈现页面://varCrash="";显然你也可以这样做:varCrash="";或者:varCrash="";知道为什么会这样吗? 最佳答案 长话短说:不要这样做-它会让解析器遵循一些关于双重​​转义脚本数据的奇怪规则,在到达时将其置于“错误”状态(从您的Angular来看).有waysofescapingthingsinyourscriptdata以确保它会按您希望的方式运行,同时不会破坏解析器。解析器在解析

Javascript——仅获取正则表达式匹配的可变部分

给出:varregexp=newRegExp("","g");在javascript中,将变量分配给与.*匹配的任何内容的最简单方法是什么?我可以这样做,但是有点难看:myString.match(regexp).replace("",""); 最佳答案 JavaScript应该在正则表达式匹配时返回一个数组对象,其中数组的零索引是匹配的整个字符串,后面的索引是捕获组。在您的情况下,类似于:varmyVar=regexp.exec(myString)[1];应将(.*?)捕获组的值分配给myVar。

JavaScript 数字 - 不可变

我来自c#背景,其中不可变是通过publicget和privateset属性实现的。我读过javascript中的数字是不可变的,所以我该如何执行以下操作varx=6/2;console.log(x);//3x=8;console.log(x);//8我已经更改了x,我以为我不能? 最佳答案 数字本身是不可变的。存储在变量中的对它们的引用不是。因此6/2为您提供了对不可变3的引用,然后=8为不可变分配了一个新引用>8. 关于JavaScript数字-不可变,我们在StackOverflo

javascript - javascript 中的不可变类型

在我看来,不可变类型在Javascript中是不可能的,或者有人知道创建它们的任何技巧吗?这是好事还是坏事?例如,varPoint2D=functionPoint2D(x,y){var_x=x;var_y=y;functionconstructor(){varself={};//Pseudo-Immutableconceptself.x=function(){return_x;}();self.y=function(){return_y;}();returnself;}returnconstructor();}这当然不是真正不可变的,但如果它是1)充分证明属性'x'和'y'是gette

javascript - 是否有不可变版本的 Object.assign?

我想在JavaScript中混合两个对象:leta={x:1,y:2,z:3};letb={x:10,y:20};letc=Object.assign(a,b);这给出了c的正确值:Object{x:10,y:20,z:3}但是现在a也被修改了!Object{x:10,y:20,z:3}有没有办法将a分配给b到一个新对象中? 最佳答案 assign的第一个参数是目标。所以它会被改变。如果您不想更改任何源,您可以简单地为目标传递一个空对象:leta={x:1,y:2,z:3};letb={x:10,y:20};letc=Object.

javascript - d3.format 中的可变精度

我将d3.format("s")与d3.svg.axis.tickFormat一起使用,以使用SI单位(来自国际单位制)很好地格式化刻度标签。它在大多数情况下工作得很好,除了遇到舍入错误并返回大量小数位的某些值(例如1400,1400*0.001=1.4000000000000001)。为了解决这个问题,我可以指定一个精度,例如d3.format(".2s")但这会在1更好的情况下强制使用2位有效数字。例如,如果我有刻度[5000、10000、15000],我现在会看到[5.0k、10k、15k]。最初,当我根本没有指定精度时,我得到了[5k、10k、15k]。我想知道是否可以指定最大

javascript - 可以将 setState 函数的 prevState 参数视​​为可变的吗?

我知道this.state不应该直接修改,而应该使用setState。由此我推断prevState也应该被视为不可变的,而setState应该总是看起来像这样:this.setState((prevState)=>{//Createanewobjectinstancetoreturnconststate={...prevState};state.counter=state.counter+1;returnstate;});或者更深的嵌套:this.setState((prevState)=>{//Createanewobjectinstancetoreturnconststate={.

javascript - PlayFramework HTML,可变为 Javascript?

想象一个简单的PlayAction定义为defreactTest=Action{request=>Ok(views.html.hello("JOHN"))}和hello.scala.html看起来像这样,使用一个基本的React.js示例:@(name:String)....React.render(Hello,@name!,这工作正常,结果将是“你好,约翰!”页。现在,我知道Scala代码在服务器上执行,JS代码在客户端执行,但我想知道是否有办法通过@name相同的javascript(jsx)代码的参数,如果此类代码位于单独的.js文件中,则看起来像:有没有办法通过@namehel

可变长度参数的 Javascript 约定

我越来越喜欢javascript开发,并希望确保我遵循流行的约定。目前我有一个库,其中包含可以传递给1个模型或多个模型进行操作的函数。鉴于一些javascript库非常流行的气候,我很好奇;我是否会通过枚举参数变量或允许其中一个参数为数组来满足我的“单项或列表”要求,从而符合“事实上的标准”?场景一:参数枚举//passingasingleentitytomyfunctionsendMail(email,recipient1);//passingmultipleentitiestomyfunctionsendMail(email,recipient1,recipient2);场景2:实