草庐IT

三元表达

全部标签

JavaScript:声明 vs 表达式 vs 语句

在过去的几个小时里,我一直在试图找出这3个之间的区别,而不仅仅是区别,我也一直在试图找出哪些是同义词,MDN将所有声明称为“声明”,所以我认为那是真实的。但是,我阅读的所有文章和SO问题都没有提供给我区分3(或2,表达式与语句)的备忘单。我注意到语句的一点是它们都以某种方式涉及一个特殊的JavaScript关键字,如break或for或var。文章说表达式求值,而语句执行操作。那什么是函数呢?它是一个语句表达式混合体(因为它在调用时都执行一个Action,并返回一个值)?现在,我假设情况并非如此,因为函数调用不涉及JavaScript关键字。然后是声明,每一个声明也是一个声明吗?我也知

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 - 我可以将 `else if` 与三元运算符一起使用吗?

我可以只使用if吗?和else在三元运算符语法的语句中,或者我也可以以某种方式包含elseif?例子:if(a){x}elseif(y){c}else{b} 最佳答案 与带有可选else或可选elseif分支的if不同,三元运算符有两个且只有两个分支。它实际上是名称的一部分。其中a+b中的+是一个二元运算符,即它有两个operands,?有三个,如a?b:c,因此被称为三元。从技术上讲,可能还有?之外的其他三元运算符,但在大多数语言中它们并不存在,因此通常理解名称“三元”表示?运算符。如果您对第二个子句进行子分支,您可以拥有类似el

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)支持自定义函数,但不支持字符串。不过,添加字符串支