前言:大家好我是阿飞在js中return是很重要的基础。一定要彻底掌握理解它哦。否则js学习到中后期很容易懵逼的+_+
什么是return?
1.在js中return是一个表达式语句,如果后面什么都不写,他的默认返回值为undefined!
2.在函数内,可以用return语句指定返回值。如return 13;,也可以没有返回值。如 return;
3.每个函数都存在一个返回值。但是处于隐身状态!必须通过return体现出。
4.返回值和输出没关系,输出是输出console.log之类的,返回值是返回值!
3.return具有结束的功能!当函数执行到return语句时,不管后面有无代码,都将结束函数的执行。
4.return 必须放在函数内!否则报错
我们先看下默认返回值undefined是什么鬼
例1:
function demo1(){
}
console.log(demo1());
//后台打印
// undefined
例2:
function demo2(){
return;
}
console.log(demo2());
//后台打印
// undefined
tips:由此可见函数内 不管加不加return ,都会存在return返回值。什么都不写的话 默认返回undefined!
接下来我们看下return的结束功能
function demo1(){
console.log("我是阿飞");
console.log("我是最帅");
}
demo1();
//后台打印
//我是阿飞
//我是最帅
function demo2(){
console.log("我是阿飞");
return;
console.log("我是最帅");
}
demo2();
//后台打印
//我是阿飞
tips:由此可见 函数内return后(下方) 的内容便无法显示了。这便是return结束的功能。
我们再来看下 return 必须放在函数内!是啥意思
console.log(1);
return;
console.log(2);
//报错
tips:所以这件事教育我们 return不在函数内的话肯定会报错滴~
另外return还可以运用在for循环和分支语句里
function demo1(){
for (var i = 0; i < 5; i++) {
if (i==2) {
return "over";
}
console.log(i);
}
}
demo1();
//后台打印
//第一行 0
//第二行 1
console.log(demo1());
//后台打印
//第一行 0
//第二行 1
//第三行 over
最后我们还需要深刻理解return结束的作用域!
function demo1(){
for (var i = 0; i < 10; i++) {
if (i==4) {
return;
}
console.log(i);
}
console.log("我不受return影响哟.....才怪");
function demo2(){
console.log("我是demo2,demo1是我的父级,并且return在我上面,所以我无法显示了。。。");
}
demo2();
for (var j = 1; j <10; j++) {
console.log(j);
}
}
demo1();
//后台打印
//0
//1
//2
function demo3(){
console.log("我是demo3,return管不着我!哼")
}
demo3();
//后台打印
//我是demo3,return管不着我!哼
由此可见 return的作用域仅限在自己的函数内。当一个函数里出现return时候,那么它下方的所有代码都不执行了。和他同级的函数他管不着哦~
最后再来一个烧脑搞事情的练习~
function demo(){
return console.log("我要搞事情~");
}
console.log(demo());
猜猜结果是啥?
//后台打印
//我要搞事情~
//undefined
解析:
1.首先return console.log("我要搞事情~"); 打印我要搞事情~
2.console.log()其实本身就是一个函数,我们都知道函数里都有返回值,而返回值必须通过return才能显示出来。
3.console.log("我要搞事情~");显然这个函数里并没存在return 所以当函数没有设置return,或者return后面不写数值的时候。默认undefined