前言:大家好我是阿飞在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

总结

提问1:阿飞~我分不清return返回值的位置,和return结束功能的位置欸。。。O.O

回答1:通常你想要返回值的时候添加return,一般写在函数最下方。如果你想结束功能时候,return的位置不一定。

提问2:阿飞~我表示还是分不清return的返回值和结束区别欸。。。O.O

回答2:最简单的鉴别方法是:当你写console.log(函数调用)时候会出现返回值(其实此刻出现返回值后同时也具有结束的功能)。---------------------其他时候return都是具有结束功能。不会显示出返回值(注意:不显示不代表不存在!!!,但是因为return是个表达式,所以他其实依旧存在返回值,只是暂时没显示而已)

return 的返回值与结束功能的更多相关文章

  1. defer、return、返回值,这三者的执行逻辑

    defer.return.返回值,这三者的执行逻辑是: return 最先执行,return 负责将结果写入返回值中:接着defer执行,可能修改返回值:最后函数携带当前返回值退出.

  2. go中defer的理解--defer、return、返回值之间执行顺序

    defer可以读取有名返回值 func c() (i int) { defer func() { i++ }() return 1 } 输出结果是2. 在开头的时候,我们知道defer是在return ...

  3. Golang中defer、return、返回值之间执行顺序的坑

    原文链接:https://studygolang.com/articles/4809 Go语言中延迟函数defer充当着 cry...catch 的重任,使用起来也非常简便,然而在实际应用中,很多go ...

  4. 获取的ajax方法return的返回值的问题解析

    今天刚上班就偶遇关于获取Ajax方法return的返回值的问题,这里小记一下. 在使用jquery中,如果获取不到ajax返回值,原因有二: 一.ajax未使用同步 ajax未使用同步,导致数据未加载 ...

  5. jquery中ajax用return来返回值无效

    jquery中,ajax返回值,有三种写法,只有其中一种是成功的 /** * async:false,同步调用 * 返回1:2 * 失败 * 分析:ajax内部是一个或多个定义的函数,ajax中ret ...

  6. jquery ajax 不执行赋值,return没有返回值的解决方法

    大家先看一段简单的jquery ajax 返回值的js 复制代码 代码如下: function getReturnAjax{ $.ajax({ type:"POST", url:& ...

  7. ajax jquery return没有返回值

    错误写法: function editdivisionmember(division_id,users_id){ $.ajax({ type:"POST", url:"/ ...

  8. 函数返回值 return

    return 返回值 (后面跟的是数据类型) // 数字.字符串.布尔.函数.对象(元素.[].{}.null).未定义return:返回值 1)函数名+括号:fn1() ==> return ...

  9. 函数的返回值return

    '''1.什么是返回值 返回值是一个函数的处理结果 2.为什么要有返回值 如果我们需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须有返回值 3.函数的返回值的应用 函数的返回值用retur ...

随机推荐

  1. sqlserver提高篇续集

    七.数据完整性 1.概念:数据一致性和准确性. 分类:域完整性.实体完整性.引用完整性. 解析:域完整性也叫列完整性是指一个数据集对某个列是否有效和确定是否允许为空值.实体完整性也叫行完整性 要求所有 ...

  2. input复选框操作的部分高频率使用代码

    1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $("input:[type='checkb ...

  3. 微信token失效时间

    微信token失效时间 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等,开发者在调用这些 ...

  4. 服务器Hadoop+Hive搭建

    出于安全稳定考虑很多业务都需要服务器服务器Hadoop+Hive搭建,但经常有人问我,怎么去选择自己的配置最好,今天天气不错,我们一起来聊一下这个话题. Hadoop+Hive环境搭建 1虚拟机和系统 ...

  5. java基础系列--集合类库(一)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7229478.html 1.概述 Java的集合类库很是丰富,囊括了大部分的常见数据结构形式 ...

  6. QT QT creator QTsdk的区别

    Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程. QT Creator 跨平台 ...

  7. rabbitMQ教程(二)一篇文章看懂rabbitMQ

    一.rabbitMQ是什么: RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上. 学过websocket的来理解rabbitMQ应该是 ...

  8. 如何让Oracle释放undo表空间

    如何让Oracle释放undo表空间   最佳答案   在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间 ...

  9. 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

    1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...

  10. 求m区间内的最小值

    洛谷P1440 求m区间内的最小值 ............................................................................... 以上 ...