可以在if区域中调用函数并检查函数是返回true还是false?

时间:2013-04-17 16:47:06

标签: javascript html

我正在使用代码

 function highlight()
{
var field=document.forms["signin"]["username"].value;
if(field.length==0)
return false;
}

我写了另一个函数

function check()
{
 if (highlight()==false;)
 {
alert('message');
 }
}

我可以在if区域中调用该函数并检查函数是否返回false吗?

2 个答案:

答案 0 :(得分:1)

当然可以。 hightlight()表达式将被评估并转换为其返回值,然后继续进行== false检查。

我看到的主要问题是你return false语句中的if,但是如果你没有进入,那么你将永远不会返回任何内容。

不返回任何内容的函数变为undefined,这是假的,它将始终从第二个check函数触发警报。

答案 1 :(得分:0)

您的函数返回falseundefinedfalseundefined都等同于false,因此检查始终为真。像这样修复它;

function highlight() {
    var field=document.forms["signin"]["username"].value;
    if(field.length==0)
         return false;
    else
        return true;
}

或者,您可以使用===代替==,因为虽然undefined == false属实,但undefined === false并非如此。