JavaScript编程进阶 – Return语句
JavaScript编程进阶 – Return语句
JavaScript Programming Advanced – Return Statement
By Jackson@ML
就像人们习惯的函数一样,总觉得在函数体最后需要一个return语句,标志着函数的结束,就像下面这个函数 theFunc() 那样。
function theFunc() { return 0
}
本文简要介绍一下可选的return语句,以及用return语句返回函数(而不是具体数值)的例子。希望对您有所帮助。
1. 可选的return
让我们先来看一个JavaScript函数,符合ES5规范。这个函数用于打招呼,函数名称为:sayHello(),代码如下:
"use strict";
var sayHello = function sayHello() {return "Hello, world!";
};
console.log(sayHello());
执行结果如下图所示:

如果变换一下,即不用声明显示的函数,取而代之的是匿名函数,代码如下:
"use strict";var sayHello = () => "Hello, world!"
console.log(sayHello());
执行结果如下图所示:

由上述代码可以看到,sayHello()已经成为一个被函数被赋值的变量。而此时,并没有出现return语句。
因此,return语句在ES6中是可选的。
2. 返回函数
如何把一个函数传递给另一个函数呢?既然我们讲过,函数是JavaScript中的数据,那么,就能把它从其它函数中返回,就如同其它数据类型一样。
下面有一个例子,代码如下:
let crazy = () => { return String }let func = crazy()
console.log(func("Hello, world!"))
上例可以看出,crazy函数返回了一个指向String字符串函数的函数引用;在调用crazy函数时, 返回了一个String函数。
注意:它仅仅返回了函数引用,并未执行函数!
执行结果如下图所示:
当然,用如下的方式执行,可能会更好些:
let crazy = () => { return String }
console.log(crazy()("Hello, world!"))
执行结果如下图所示:

技术好文陆续推出,敬请关注。
喜欢就点赞哈!您的认可,我的动力!😃
相关阅读:
- JavaScript编程基础 - 布尔值(Booleans)
- JavaScript编程基础 - 对象(Objects)
- JavaScript编程基础 - 函数进阶
- JavaScript编程基础 - 条件语句
- JavaScript编程基础 - 函数入门
- JavaScript编程基础 - 关键字Let, Const和Var的区别
- JavaScript编程基础 - 变量
- JavaScript编程基础 - 输出
- 用Visual Studio Code搭建JavaScript开发环境
相关文章:
JavaScript编程进阶 – Return语句
JavaScript编程进阶 – Return语句 JavaScript Programming Advanced – Return Statement By JacksonML 就像人们习惯的函数一样,总觉得在函数体最后需要一个return语句,标志着函数的结束,就像下面这个函数 theFunc() 那样。 function theFunc() { re…...
Python与设计模式--备忘录模式
23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…...
04_Flutter自定义Slider滑块
04_Flutter自定义Slider滑块 一.Slider控件基本用法 Column(mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[Text("sliderValue: ${_sliderValue.toInt()}"),Slider(value: _sliderValue,min: 0,max: 100,divisions: 10,thumbColor: Colors.…...
服务器数据恢复—EMC存储raid5故障导致上层应用崩溃的数据恢复案例
服务器存储数据恢复环境: EMC某型号存储,8块组建一组raid5磁盘阵列。上层操作系统采用zfs文件系统。 服务器存储故障&分析: raid5阵列中有2块硬盘未知原因离线,raid5阵列崩溃,上层应用无法正常使用。 服务器数据恢…...
7.1 Windows驱动开发:内核监控进程与线程回调
在前面的文章中LyShark一直在重复的实现对系统底层模块的枚举,今天我们将展开一个新的话题,内核监控,我们以监控进程线程创建为例,在Win10系统中监控进程与线程可以使用微软提供给我们的两个新函数来实现,此类函数的原…...
基于ssm的汽车论坛管理系统设计与实现
基于ssm的汽车论坛管理系统设计与实现 摘要:信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题…...
实习开发日志经验总结(一)
文章目录 前言实习日志经验总结 前言 自己之前实习过程中遇到的问题以及相应的解决过程,我都有记录形成比较凌乱的实习日志。故想在整个实习日志的基础上,提炼一些技术知识点或者是解决问题的思路。考虑到实习项目的不方便公开性,所以会隐去…...
【Unity基础】8.简单场景的搭建
【Unity基础】8.简单场景的搭建 大家好,我是Lampard~~ 欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 (一)场景资源 (1)Import资源包 今天我们将手动去搭一个简单的场景,当…...
傅里叶变换及其在机器学习中的应用
一、介绍 傅立叶变换是一种数学技术,在各个科学和工程领域发挥着关键作用,其应用范围从信号处理到量子力学。近年来,它在机器学习领域发现了新的意义。本文探讨了傅里叶变换的基础知识及其在机器学习应用中日益增长的重要性。 …...
xorm源码学习
文章目录 XORM源码浅析及实践ORMORM vs. SQLXORM软件架构 ORM 引擎 Engine——DBM*core.DB Golang:database/sql 源码基本结构连接复用,提高性能。增加数据库连接池数量连接管理 database/sql主要内容:sql.DB创建数据库连接sql.Open()DB.conn…...
Vue3中的<script setup>和<script>的区别
相同点 在一个 Vue3 单文件组件 (SFC)中,<script setup> 和 <script> 它们各自最多只能存在一个。 不同点 <script setup> 这个脚本块将被预处理为组件的 setup() 函数,这意味着它将为每一个(也可以说每一次)组件实例都执行。 <…...
Docker笔记-Docker搭建最新版zabbix服务端(2023-07-31)
前言 一开始问chartgpt上,搭建的思路是对的,但命令和细节有问题,最后还是依靠StackOverflow解决的。一开始在amd的linux上搭建好docker版的zabbix,但放到arm的机器上就报错了,原因是指令集不匹配,最后跑到…...
QT配合CSS隐藏按钮
第一种方法 在Qt的CSS样式表中,使用 visibility 属性来隐藏按钮。设置 visibility 为 hidden 不可见,而设置为 visible 则可见。 隐藏所有 QPushButton QPushButton {visibility: hidden; }隐藏特定的按钮,用按钮的名称或样式类进行定位就…...
2023亚太地区数学建模C题思路分析+模型+代码+论文
目录 1.2023亚太地区各题思路模型:比赛开始后,第一时间更新,获取见文末名片 3 常见数模问题常见模型分类 3.1 分类问题 3.2 优化问题 详细思路见此名片,开赛第一时间更新 1.亚太地区数学建模ABC题思路模型:9比赛开…...
Linguistic Steganalysis in Few-Shot Scenario论文阅读笔记
TIFS期刊 A类期刊 新知识点 Introduction Linguistic Steganalysis in Few-Shot Scenario模型是个预训练方法。 评估了四种文本加密分析方法,TS-CSW、TS-RNN、Zou、SeSy,用于分析和训练的样本都由VAE-Stego生产(编码方式使用AC编码)。 实验是对比在少样…...
详细学习Pyqt5的4种项目部件(Item Widget)
Pyqt5相关文章: 快速掌握Pyqt5的三种主窗口 快速掌握Pyqt5的2种弹簧 快速掌握Pyqt5的5种布局 快速弄懂Pyqt5的5种项目视图(Item View) 快速弄懂Pyqt5的4种项目部件(Item Widget) 快速掌握Pyqt5的6种按钮 快速掌握Pyqt5的10种容器&…...
notepad++ 插件JSONView安装
1,前提 开发过程中经常需要处理json格式语句,需要对json数据格式化处理,因为使用的是虚拟机内开发,所以没法连接外网,只能在本地电脑下载插件后,然后上传到虚拟机中,进行安装使用。 2…...
AKConv:具有任意采样形状和任意数目参数的卷积核
文章目录 摘要1、引言2、相关工作3、方法3.1、定义初始采样位置3.2、可变卷积操作3.3、扩展AKConv3.3、扩展AKConv 4、实验4.1、在COCO2017上的目标检测实验4.2、在VOC 712上的目标检测实验4.3、在VisDrone-DET2021上的目标检测实验4.4、比较实验4.5、探索初始采样形状 5、分析…...
如何使用C++开发集群服务
开发集群服务需要掌握以下技术: 分布式系统原理:了解集群的概念、工作原理、负载均衡、容错等相关概念。 网络编程:掌握Socket编程和HTTP协议等。 C编程:熟练掌握C语言的基础知识和STL等常用库。 多线程编程:了解线…...
docker安装以及idea访问docker
其他目录: docker 安装环境: https://blog.csdn.net/gd898989/article/details/134570167 docker 打包java包,并运行(有空更新) url “” docker 打包vue (有空更新) url “” docker 多服务 (…...
基于ZYNQ MPSoC 在多轴伺服电机驱动器中的架构设计与工程实践
一、引言在工业机器人、数控机床、导弹舵机、相控阵列天线、自动化产线等高精工业场景中,多轴伺服电机独立控制 高精度同步是核心刚需。目前行业主流两种传统方案都存在明显瓶颈:纯 DSP 软件方案:串行中断执行,单 DSP 算力有限&a…...
3分钟掌握清华大学学位论文LaTeX模板:新手快速入门终极指南
3分钟掌握清华大学学位论文LaTeX模板:新手快速入门终极指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 你是否正在为清华大学学位论文的格式要求而头疼?…...
架构师的一天:开会、画图、背锅?真实工作大揭秘
架构师的一天:开会、画图、背锅?真实工作大揭秘 一、写在前面 很多程序员对架构师的工作充满好奇,也充满误解: “架构师是不是整天就画图?” “架构师不用写代码,太爽了吧?” “架构师就是开会的,多轻松” 今天我用一个架构师的一天,带你看看真实的架构师工作是什么…...
Qwen-Agent实战:5步构建本地化智能助手,告别云端API依赖
Qwen-Agent实战:5步构建本地化智能助手,告别云端API依赖 【免费下载链接】Qwen-Agent Agent framework and applications built upon Qwen>3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc. 项目地址: https:…...
JMeter临界部分控制器正确用法与避坑指南
1. 为什么“临界部分控制器”是压测中真正卡住团队的隐形瓶颈很多人第一次在JMeter里看到临界部分控制器(Critical Section Controller),第一反应是:“这不就是个带锁的逻辑块?加个锁而已,能有多复杂&#…...
告别截图!用UE4/UE5的WebUI插件,把实时数据大屏“搬”进数字孪生场景
告别截图!用UE4/UE5的WebUI插件实现实时数据大屏与数字孪生场景的无缝融合在工业仿真和智慧城市领域,数据可视化大屏与三维场景的联动一直是技术难点。传统解决方案往往依赖静态截图或视频播放,导致数据延迟、交互缺失。本文将深入探讨如何通…...
Unity动画状态机实战:用Animator Controller实现角色平滑切换攻击动作(附避坑指南)
Unity动画状态机实战:用Animator Controller实现角色平滑切换攻击动作(附避坑指南)在动作类游戏开发中,角色攻击动作的流畅切换是提升战斗体验的关键。许多开发者在使用Unity的Animator Controller时,常常遇到动作卡顿…...
VMware Workstation Pro 17上快速体验Rocky Linux 8.6:从镜像下载到命令行登录的5分钟极简流程
VMware Workstation Pro 17极速部署Rocky Linux 8.6实战指南 当技术爱好者们想要快速搭建一个Linux测试环境时,繁琐的安装流程往往会消耗大量时间。本文将展示如何在VMware Workstation Pro 17上,用最短时间完成Rocky Linux 8.6的部署,从零开…...
RL-ARM CAN迁移至CMSIS-RTOS的实践指南
1. 从RL-ARM CAN到CMSIS-RTOS的迁移背景在嵌入式开发领域,随着Keil MDK版本的迭代,RL-ARM库中的CAN组件逐渐向MDK Middleware过渡。许多基于MDK v4和早期v5版本开发的项目,都使用了RL-ARM库中的CAN驱动实现。当开发者需要将项目升级到较新的M…...
避坑指南:UE球形遮罩材质边缘闪烁、接缝问题分析与修复(附完整节点图)
深度解析:UE球形遮罩材质边缘闪烁与接缝问题的终极解决方案在虚幻引擎中实现球形遮罩效果是许多项目中的常见需求,但开发者们往往会遇到一个棘手的问题——遮罩边缘出现闪烁、锯齿或明显的接缝。这种现象不仅影响视觉效果,还可能破坏场景的整…...
