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,就会有返回结果了,如果想要返回异步调用获得的数据,需要在方法里先声明一个变量来获取;