将JS函数的返回值分配给变量失败,并显示错误

时间:2018-08-29 00:56:53

标签: javascript html web

我有一个简单的HTML文档和JS文件,我无法弄清楚为什么这个简单的代码不起作用。

这里是index.html

<!DOCTYPE HTML>
<html>
    <head>
        <script>
        function getStatus() {
            alert('test 1');
            var isOnline = isOnline();
            alert('test 3');
        }

        function isOnline() {
            alert('test 2');
            return true;
        }
        </script>
    </head>
    <body>
        <script>getStatus();</script>
    </body>
</html>

它仅显示“测试1”警报,然后不显示任何内容。如果删除isOnline()函数调用,它将显示“ Test 1”警报,然后显示“ Test 3”警报,而不会出现问题。我在浏览器控制台中收到Uncaught TypeError: isOnline is not a function

Browser console error

更新:

事实证明,这是由于我用与函数相同的名称来命名变量。我是JavaScript的新手,并不知道此限制。

3 个答案:

答案 0 :(得分:1)

成功。

http://jsfiddle.net/humskoa3/2/

<!DOCTYPE HTML>
<html>
<head>
    <script>
        function getStatus() {
                alert('Test 1');
            isOnline();
                alert('Test 3');
                }

                function isOnline() {
              alert('Test 2');
                }
    </script>
</head>
<body>
    <script>getStatus();</script>
</body>

为什么不呢?

再次测试!

答案 1 :(得分:0)

这是因为我用与函数相同的名称来命名变量。

答案 2 :(得分:-1)

通常,每次交互都可以执行一次警报。尽管我使用chrome devtools尝试了您的代码,但它仍然有效。可能是因为您的html文件读取了js文件以提醒一次,然后完成功能。

function getStatus() {
alert("1");
isOnline();
alert("3");
}
function isOnline() {
alert("2");
}
getStatus();