JavaScript编写函数返回值时出现undefined问题

javascript函数中不需要声明方法返回类型,也可以返回数据。但是在使用中我们往往发现return undefined。总结几种返回undefined的情况以及原因分析:

1.写一个demo,正常情况下,我们测试返回是否成功。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>return undefined解析</title>
    <script type="text/javascript">
        function test(){
            return document.getElementById("test1").innerText;
        }
        function test1(){
          console.log(test());
        }
    </script>
</head>
<body>
<span id="test1">正常返回值</span><br>
<button onclick="test1()">测试第一种</button>
</body>
</html>

有一个span标签,里面内容是”正常返回值“,有一个函数(test)获得span的内容并且返回,有一个按钮点击后(test1),控制台输出返回内容。

2.测试页面效果:

图片返回成功
console输出文本内容。

3返回undefined情况一:.当我们对象获取不到,或者方法写错时,

在这里插入图片描述
当调用text方法的时候,控制台就报undefined
在这里插入图片描述

4返回undefined情况二:方法里存在判断导致没有返回值

当方法里,存在判断,但是不符合判断的并没有返回数据,JS并不会像Java一样,帮你提示帮错,本身就是可以有返回或没有返回。
在这里插入图片描述

5.返回undefined情况三:ajxa返回成功后return,并没有写在ajxa结束后return。

这种情况也是最常见的情况,举例子
在这里插入图片描述
方法中,ajax不管是成功还是错误都有返回,但是我们调用后还是返回undefined,原因是:
return 返回只是跳出了ajax,然而并没有结束方法,
所以需要在方法最后面return,就会有返回结果了,如果想要返回异步调用获得的数据,需要在方法里先声明一个变量来获取;

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值