草庐IT

表达力

全部标签

javascript - 期待一个条件表达式,而是看到一个赋值

我的javascript代码中有以下函数:addParam(url,param,value){vara=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;varmatch,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search)){if(param!=match[1]){str.push(match[1]+(match[2]?'='+match[2]:''));}}str.push(p

javascript - 在表达式语言中转义 JavaScript

有时,我需要在JSF页面中使用EL呈现JavaScript变量。例如varfoo='#{bean.foo}';或当EL表达式的计算结果为包含JS特殊字符(如撇号和换行符)的字符串时,这将失败并出现JS语法错误。我该如何逃避它? 最佳答案 您可以使用ApacheCommonsLang3.xStringEscapeUtils#escapeEcmaScript()EL中的方法。首先创建一个如下所示的/WEB-INF/functions.taglib.xml:http://example.com/functionsescapeJSorg.a

javascript - 使用 PEG.js 解析完整的数学表达式

我正在尝试扩展PEG.js的示例语法为我的在线BASIC解释器实验使用所有4个运算符解析数学表达式:http://www.dantonag.it/basicjs/basicjs.html但并非所有表达式都被正确解析。这是我的PEG语法:expression=additiveadditive=left:multiplicativeatag:("+"/"-")right:additive{return{tag:atag,left:left,right:right};}/multiplicativemultiplicative=left:primaryatag:("*"/"/")right:

javascript - 用javascript解析算术表达式

有没有简单的方法,用javascript,转换下面的表达式e*((a*(b+c))+d)变成类似的东西multiply(e,add(multiply(a,add(b,c)),d))表达式将存储在一个字符串中。我愿意接受任何可以避免我编写自己的解析器(库、内置功能……)的解决方案编辑:我应该明确指出我实际上并不想使用multiply和add函数,这样做的目的是定义我自己的函数来替换multiply和add并对变量执行自定义操作 最佳答案 您试图解析为抽象语法树的表达式是上下文无关表达式。这意味着您需要上下文无关语法才能解析它。因此,让

javascript - 预期的表达,脚本结束

所以我在网页的标题中有以下代码:varcounter=2;functionaddNewItemField(divName){varnewDiv=document.createElement("div");newDiv.id="item_listing_"+counter;newDiv.innerHTML="Item:";newDiv.innerHTML+="";newDiv.innerHTML+="";document.getElementById(divName).appendChild(newDiv);counter++;}我尝试使用按钮调用它,但我总是收到语法错误,指出“预期的表

javascript - 获取函数表达式中的参数数量?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Getafunction’sarity如何声明一个函数表达式,将其传递给定义的函数,并让定义的函数确定函数表达式有多少个参数?请参阅此代码段以供引用:functiongetArgumentCount(fexp){return...;}varfexp1=function(a){};varfexp2=function(a,b){};console.log(getArgumentCount(fexp1));//Shouldoutput1console.log(getArgumentCount(fexp2));//S

javascript - ng-repeat 中的 angularJS 过滤器表达式

我想知道实现它的最优雅和最简单的方法是什么。我需要为ng-repeat添加一个过滤器表达式,它将从一个属性中过滤2个条件。在这个例子中http://plnkr.co/edit/OMQxXvSjtuudMRGE4eZ8?p=preview如果您输入A,它会显示A的复选框,输入B-显示B的复选框。但我想显示指定的复选框以及任何空条件。C没有条件,所以:如果你输入A,我想同时显示A和C复选框,输入B,我想同时显示B和C复选框。 最佳答案 我会像这样创建自定义过滤器:app.filter('myfilter',function(){retu

用于简单表达式的 Javascript 解析器

我想找到一个可以处理和评估简单表达式的javascript解析器。解析器应该能够评估正则数学表达式,并支持带参数的自定义函数。它还必须支持字符串处理。使用||进行字符串连接运算符支持是首选,但如果+可以解决问题也没关系。应由解析器处理的表达式示例:3*(2+1)-12*函数(2,2)func('HelloWorld',0,5)||'你'有没有人实现过这样的东西,或者我在哪里可以找到类似的东西? 最佳答案 我有一个ActionScriptparser的修改版本(用AS编写,不解析AS)支持自定义函数,但不支持字符串。不过,添加字符串支

javascript - 这个表达式是什么意思 "!!"

为什么有人会用这样的表达方式if(!!window.JSON)alert('exists');不仅仅是if(window.JSON)alert('exists');?“!!”还有其他用法吗?事情? 最佳答案 !!只会导致bool值转换,完全没有必要将此结构与if语句一起使用,也在您的第一个代码段中,转换bool值的对象没有意义,它将始终为真。唯一可以强制为false的值是null、undefined、NaN、0和空字符串,当然还有false任何其他内容都会强制转换为true。什么时候使用!!是您想要确保获得bool结果的时候,例如当

javascript - 这是什么 JS 语法?表达式赋值? (x != null && (y = x))

我正在使用这个JS插件,我遇到了一些我以前从未见过的语法。我明白它在做什么,但我不确定它为什么会起作用。这是它的一个例子:settings.maxId!=null&&(params.max_id=settings.maxId);这只是利用了条件语句和单个=吗?这是JS的通用语法吗? 最佳答案 在JavaScript中,=运算符是一个表达式,用于计算分配的值。因为它是一个表达式,所以它可以在任何允许表达式的地方使用,即使它会导致副作用。因此:settings.maxId!=null&&(params.max_id=settings.m