草庐IT

三元表达

全部标签

javascript - ng-class 中的表达式

我有一个非常简单的Angular应用程序,我正在尝试结合使用ng-repeat和ng-class来重复模板,并根据被绑定(bind)数据的属性之一将不同的类应用于外部div.这在我使用一个简单的...时有效ng-class="message.type"...但不幸的是,我需要将一个字符串连接到消息类型的开头。我试图在这里创建一个JSfiddle...http://jsfiddle.net/XuYGN/5/...但这也是我第一次尝试制作JSfiddle,我一定是做错了什么,因为Angular的东西似乎没有运行。不过,它确实显示了我试图用表达式做什么。我们将不胜感激任何帮助。

javascript - JavaScript 语法中有效的左侧表达式是什么?

好的,我们都知道有效的左侧表达式是什么。有点。*但是,查看theECMA-Scriptstandard中的定义,我很困惑:LeftHandSideExpression:NewExpressionCallExpression这只是定义中的错误,还是我在这里弄错了?我的意思是,这不是真正的意思吗newObject=1;//NewExpressionAssignmentOperatorPrimaryExpressionfunction(){returnfoo;}()=1;//CallExpressionAssignmentOperatorPrimaryExpression应该是有效的赋值表达

javascript - 立即调用函数表达式 (IIFE) 相对于普通函数的优势

我是javascript的新手,我读过关于themodulepattern的文章提供某种namespace并同时具有私有(private)和公共(public)成员,例如:varmodule=(function(){vars="Hello,i'mprivateandinclosure!";return{myString:s,myFunc:function(){alert(s);}};})();我确实看到了它的好处,因为它为您提供了面向对象编程的一些优势。但是我见过很多没有分配给变量的IIFE示例。与您调用的普通函数相比,这(据我所知)没有任何优势:1。国际金融学院(function()

javascript - 方法表达式不是函数类型

我有以下JavaScript文件:/*global$*/functionfoo(){'usestrict';var$tr=$('tabletr'),$td=$tr.children('td');$td.html('HelloWorld');}在PHPStorm中,children带有下划线和弱警告。将鼠标悬停在上面会显示此消息:MethodexpressionisnotofFunctiontype此文件与jquery.min.js(v.1.11.0,如果重要的话)位于同一目录中。我该如何解决这个问题?请注意,上面的示例是一个足以重现问题的极简示例;这不是我的实际代码,但会产生相同的结果

javascript - 为什么要使用 JavaScript 函数声明(和表达式)?

我见过其他人使用以下模式。varbar=functionfoo(){};console.log(bar);//foo()console.log(foo);//ReferenceError:fooisnotdefined但是为什么?如果两者都被宣布,我可以理解这一点,但事实并非如此。原因是什么? 最佳答案 正如其他人所提到的,在您的示例中使用第一种形式(命名函数表达式)有助于调试,尽管随着浏览器中内置开发人员工具的最新改进,这个论点是变得不那么有说服力了。使用命名函数表达式的另一个原因是您可以将函数名称用作函数体内的变量,而不是现在在

javascript - ES6 中命名或未命名类表达式的用途是什么?

在代码中,我使用了一个名为“Car”的类。现在,如果我尝试像varcarNew=newCar("ferrari");那样使用,那么它会向我抛出一个错误。那么命名类表达式在ES6中有什么用呢?'usestrict';varcar=classCar{constructor(model){this.model=model;}}varcarNew=newcar("ferrari");console.log(carNew);//car{model:"ferrari"}console.log(carNew.constructor==car);//true 最佳答案

javascript - 为什么将 "0"与三元运算符一起使用会返回第一个值?

我在玩JSconsole时发现了一些奇怪的东西。"0"的值为false"0"==false=>truefalse的值在三元中使用时返回第二个值false?71:16=>16但是当在三进制中使用时等于false的值"0"返回第一个值。"0"?8:10=>8但是,如果您使用0作为值,它会返回第二个值0?4:5=>50=="0"=>true恐怕这对我来说没有意义。 最佳答案 非空字符串在条件语句、条件表达式和条件构造中被视为真值。但是当您使用==将字符串与数字进行比较时,会发生一些转换。Whencomparinganumberandast

javascript - 为什么 jshint 提示表达式中的换行符?

当将以下代码传递给jshint时,它认为if条件中的换行符是错误的,并显示“Badlinebreakingbefore'&&'。”if(1==1&&true){console.log("helloworld");}但是,在'&&'之后有换行符是可以的。if(1==1&&true){console.log("helloworld");}为什么jshint认为前者是错的而后者是对的? 最佳答案 根据adiscussiononGitHub:Thismaycauseproblemslikesemicoloninsertionandoldja

javascript - 在 Angular Directive(指令)表达式中将范围变量连接到字符串中

我在Angularng-click指令中使用范围方法,如下所示:{{obj.val1}},{{obj.val2}}这里的问题是obj.val1和obj.val2被解释为传递给表达式中方法的字符串的一部分。我需要将它们作为变量进行评估...我不确定这里的正确方法是什么。有没有一种Angular方法可以将这些值连接到该字符串/表达式中?我只是“做错了”吗? 最佳答案 我创建了一个workingCodePenexample演示如何执行此操作。相关的HTML:ClickMedebug:{{debug.val}}相关的javascript:v

javascript - JavaScript 中 Math.max 与三元运算符的速度和风格

在JavaScript中,这样做是否更好:varh=th>ch?th:ch;或varh=Math.max(th,ch);? 最佳答案 第二个对我来说似乎更清楚,因为它显示了意图而不是实现。我怀疑在很多情况下,任何性能差异都会产生明显的差异,而且它可能无论如何都依赖于实现。 关于javascript-JavaScript中Math.max与三元运算符的速度和风格,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.