创建函数:
function 函数名(形参变量列表){
函数体;
return 返回值;
}
return
(1). 什么是: 返回,return语句将终止当前函数并返回当前函数的值
(2). 为什么要用:
我们先来看一组代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function sum(n1,n2){
return n1 + n2;
alert("klajflhalkfhla")//永远不会执行
}
//这个函数执行完return语句后就会停止。因此任何在return后面的语句(这里指return下一行alert永远不会执行)
var result = sum(5,10);
console.log(result);
</script>
</body>
</html>
通过这个例子不知道你明白了多少,来我们再看一个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function fun(){
//函数里面写了一个死循环,然后在下面调用,在没有写return语句时浏览器会一直执行循环内的语句,直接卡死。
while (true){
return 1;
}
};
//用return语句,直接中断函数,并且给函数返回了一个数值1,意思就是当函数执行后,函数体将被赋值为函数的返回值,这里会被返回1。
alert(fun());
</script>
</body>
</html>
(3). 什么时候:
话不多说继续看例子
简单的案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
//一个函数可以拥有多个return语句
function sum(n1,n2){
//两个分支都具有自己的return语句,分别执行计算
if(n1 < n2) {
return n2 - n1;
} else {
return n1 - n2;
}
}
//调用
var a=sum(2,1);
console.log(a)
</script>
</body>
</html>
**return语句也可以不带任何返回值。**在这种情况下,函数在停止执行后将返回undefined值。
这种用法一般用在需要提前停止函数执行而不需要返回值的情况下。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function sum(n1,n2){
return;
alert("e"+n1+","+n2)
}
var a=sum(2,1);
console.log(a)
</script>
</body>
</html>
返回值
什么是:
当 语句到达 return 时,函数将停止执行。如果函数被某条语句调用,JavaScript 将在调用语句之后返回执行代码。函数通常会计算出返回值。这个返回值会返回给调用者,这就是返回值。
为什么要用:
这样这个函数就能把结果返回给调用这个函数的语句了。然后我们完全可以创建一个函数并让它返回一个数值,一个字符串,一个数组或者一个布尔值。然后我们还可以将这个返回值当作一种数据类型来使用,这意味着可以把一个函数的调用结果赋值给一个变量。
什么时候用:
所有函数都有返回值,没有return语句时,默认返回内容为undefined,和其他面向对象的编程语言一样,return语句不会阻止finally子句的执行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> </title>
</head>
<body>
<script>
function Function(a, b) {
return a * b; // 函数返回 a 和 b 的乘积
}
var x = Function(10, 11); // 调用函数,返回值被赋值给 x
console.log(x)
</script>
</body>
</html>
扩展资料:
return 工作原理
被调函数运行结束后才会返回主调函数,但是被调函数运行结束后系统为被调函数中的局部变量分配的内存空间就会被释放。也就是说,return 返回的那个值在被调函数运行一结束就被释放掉了。
事实上在执行 return 语句时系统是在内部自动创建了一个临时变量,然后将 return 要返回的那个值赋给这个临时变量。所以当被调函数运行结束后 return 后面的返回值真的就被释放掉了,最后是通过这个临时变量将值返回给主调函数的。
而且定义函数时指定的返回值类型实际上指定的就是这个临时变量的类型。这也是为什么当 return 语句中表达式的类型和函数返回值类型不一致时,将 return 的类型转换成函数返回值类型的原因。
return 语句实际上就是将其后的值赋给临时变量,所以它要以临时变量的类型为准,即函数返回值的类型。