如果在另一个函数中有错误,为什么javascript不运行一个函数?

Why won't javascript run one function if there is an error in the other function?

本文关键字:函数 运行 一个 javascript 另一个 有错误 为什么 如果      更新时间:2023-09-26

如果在另一个函数中有错误,为什么JavaScript函数不会运行?

我运行这个html页面,并试图从popup1()函数加载警报,但它不会工作,因为在popup2()函数的if语句中有一个错误:

<html>
<body>
<button onclick="popup1()"> Pop up 1 </button>
<button onclick="popup2()"> Pop up 2 </button>
<script>
function popup1()
{
    alert ("Pop up 1");
}
function popup2()
{
    if ( 1 = 1)
    {
        alert ("Pop up 2");
    }
}
</script>
</body>
</html>

当我将if语句修改为if(1 == 1)时,两个函数都工作了。

为什么这会影响另一个函数?

你能推荐什么免费软件帮我查找JavaScript中的语法错误吗?我真的不想再因为缺少等号而遍历代码。我尝试了eclipse for php,但它没有设法找到这个

Javascript以阻塞顺序运行,因此如果在任何地方出现错误,它将停止执行。

(这是假设您没有在错误发生之前开始的异步函数回调)

代码if ( 1 = 1)行是Javascript中的解析错误。当你的代码无法正确解析时,Javascript解析器立即停止解析你的代码,该脚本被认为有致命错误,不会被加载。

在这一点上,它发现了非法的Javascript,在最好的情况下,解析器认为这是一个致命的错误,在最坏的情况下,解析器对你的代码的含义感到绝望,无法继续。在任何情况下,Javascript解析器都是这样工作的。它在任何给定脚本中遇到第一个解析错误时停止。

当您加载该页面时,您的特定错误将在Javascript控制台中显示给您。您的第一道防线应该是密切关注调试控制台。你应该定期查看,但是只要有任何东西不像你期望的那样工作,就一定要查看。

在Chrome中,它会告诉你:

Uncaught ReferenceError: Invalid left-hand side in assignment

另外,你可以在你的代码上运行各种"lint"类型的程序,它不仅会告诉你错误,还会告诉你危险的做法。我个人使用http://jshint.com/,但是有几个不同的程序提供这个功能。

这个错误是因为一个数字不能被重新声明,因为一个数字总是相同的数字。这会导致语法错误并影响代码的其余部分。如果你想让这个例子正常工作,

function popup2()
    {
        var number = 1;
        if ( number = 1)
        {
            alert ("Pop up 2");
        }
    }