定义
return,从字面意思来看就是返回,官方定义return语句将终止当前函数并返回当前函数的值。一个函数被执行过后,整个函数体被赋值为函数的返回值。
写法
官方定义return后面可以跟一个value,也就是说可以跟javascript中的任何数据类型,数字,字符串,对象等,当然也可再返回一个函数。
练习1
既然return
可以返回任何东西,其实也就可以返回它本身。
var i=1; //定义循环变量
function func1(){
i++; //改变循环变量
if(i<5){ //小括号为循环条件
console.log(i)
return func1();
}
}
func1();
返回函数本身
可以看到,return
其实在函数中的作用就是终止函数运行并且返回值。
练习2
function(a,b)=> {
alert(a*b);
}
function(a,b) => {
return a*b;
}
- 上面的第一个代码块中,表示函数输出
a*b
。 - 第二个代码块中,表示函数返回
a*b
- 看似没啥区别,但是,明显用
return
更为灵活。
第一个函数只能弹窗显示a*b
。
但是第二个函数直接返回a*b
,表示整个函数被赋值了a*b
的值。我在函数外调用函数其实就是调用a*b
本身。 - 假如此时我要
console.log(a*b)
。第一个函数还需在函数本身添加console.log(a*b)
。但是,第二个函数可以直接console.log(第二个函数)
return ,return true,return false
<!DOCTYPE html>
<html>
<head>
<title>return测试</title>
</head>
<body>
<a href="#"></a>
<a onclick="fun1()">111</a>
<a onclick="fun2()">222</a>
<a onclick="fun3()">333</a>
<a onclick="fun4()">444</a>
<script type="text/javascript">
function fun1() { return ;
console.log('111 这个不会执行')
}
function fun2() { return false;
console.log('222 这个不会执行')
}
function fun3() { return true ;
console.log('333 这个不会执行')
}
function fun4() {
console.log('444 这个会执行')
}
</script>
</body>
</html>
通过上面的例子 可以看出 return ; return false return true 在函数内部都中断了函数的执行。
因为函数执行是自上而下的。函数会先 执行 return
,return true
,return false
。如果此时把return
与console.log('111 这个不会执行')
上下位置对调,发现console.log
被执行了。
所以我们可以得到:
- return ; return false ; return true 都会在函数内部阻止程序的执行。
- 但是在表单提交中,只有 return false 会阻止表单的提交。return ,return true,都可以把表单提交。
再来看一个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<a href="https://www.baidu.com" id="www">百度</a>
<script>
var a = document.getElementById('www')
a.onclick = function () {
return true/false
}
</script>
</body>
</html>
- 当
return false
的时候,无法跳转。 - 当
return
return false
的时候,会跳转。
return、continue、break 、break的区别
return
- return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
- return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
- return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
continue
- 终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
- 它不是退出一个循环,而是开始循环的一次新迭代。
- continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误!
for(var i=1;i<=10;i++) {
if(i==8) {
continue;
}
document.write(i);
}
//当i=8的时候,直接跳出本次for循环。下次继续执行。
//输出结果:1234567910
break
- break在循环体内,强行结束循环的执行,也就是结束整个循环过程,不在判断执行循环的条件是否成立,直接转向循环语句下面的语句。
- 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
for(var i=1;i<=10;i++) {
if(i==8) {
break;
}
document.write(i);
}
//当i=8的时候,直接退出for这个循环。这个循环将不再被执行!
//输出结果:1234567
其他
- return ;后面不接什么东西。当你需要中止函数往下执,可以用这个。
- retrun true; 返回正确的处理结果。
- return false;作用一般是用来取消默认动作 / 阻止提交表单 / 阻止继续执行下面的代码。return false 只在当前函数有效,不会影响其他外部函数的执行。
网友评论