我有一个语法问题,让我说我有以下功能。它接收到拼写检查的文本并返回正确的文本或假,如果文本拼写正确。
var spellCheck = function (txt) {
var spelledTxt = spell(txt);
if (spelledTxt =! txt) { //the text had a typo.
return spelledTxt;
}
return false;
}
现在在一个不同的函数中我想从ElseIf语句调用这个函数,我想只有在文本有错误的情况下才能进入该语句。类似的东西:
if(something){
do something....
}else if(spellCheck(word)){
do something with the spelledTxt that was returned from "spellcheck"
}
我可以这样做:
else if(var spelledWord = spellCheck(word))
do something with spelledWord.
我忘记了一件非常重要的事情:spellCheck(word)
功能很重,如果不需要,我想避免调用它。这意味着只有当我们到达else if()
时才会被召唤,而不是更快。
答案 0 :(得分:5)
任何表达式在<ul class="cols">
<li>
@yield('comment')
</li>
</ul>
语句中都有效,并且包含赋值表达式。赋值表达式的值是赋值。
在您的情况下,函数调用的返回值是表达式的值,但if
使它成为语句而不是简单表达式。
您需要从语句中删除变量声明部分,然后才可以。
或者,您可以这样做:
var
答案 1 :(得分:-1)
你可以做到这一点。赋值操作返回一个值,您可以将其用作布尔表达式。
但你应该记住:
var
语句中是函数作用域。我至少考虑使用严格的比较运算符:if (spelledWord = spellCheck(word) !== '')
如果可能的话,尝试通过调用spellCheck
函数来记忆(缓存)结果。在这种情况下,您根本不需要将两个操作合并为一个。