JS函数(二)基础 return 返回值

2023-11-18

    创建函数:
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 语句实际上就是将其后的值赋给临时变量,所以它要以临时变量的类型为准,即函数返回值的类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS函数(二)基础 return 返回值 的相关文章

  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 在 jQuery .live() 方法中模拟“焦点”和“模糊”

    Update 从 jQuery 1 4 开始 live 现在支持focusin and focusout events jQuery http www jquery com currently1 doesn t support blur o
  • 使用 Firefox 插件 sdk 的 nsISocketTransportService

    我正在尝试使用 Firefox 来读取 SSH 横幅 IE 当您最初连接到 SSH 服务器时 服务器会向您发送其横幅 标识服务器软件 并且您向 SSH 服务器发送您的横幅 标识您的客户端软件 为此 我使用以下 URL 中的示例 firefo
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • 如何使 d3 饼图响应式?

    我有一个 PIE 图表 它工作正常 但我无法使其具有响应能力和可调整大小 我需要它与移动浏览器和 iPad 等兼容 div div
  • 此页面上的脚本导致 ie 运行缓慢

    问题就在标题中 IE 行为异常 并说有一个脚本运行缓慢 FF 和 Chrome 没有这个问题 我怎样才能找到问题所在 那个页面有很多JS 手动检查不是一个好主意 EDIT 这是我正在处理的一个项目的页面 但我需要一个工具来查找问题 End
  • 如何在 React Native 上显示 SVG 文件?

    我想显示 svg 文件 我有一堆 svg 图像 但我找不到显示的方式 我尝试使用Image and Use的组成部分反应本机 svg https github com magicismight react native svg但他们不这样做
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 摩纳哥:如何添加内联自动完成/代码建议?

    我找不到任何有关如何添加内联自动完成功能的示例 如下图所示 有人可以指导我如何在摩纳哥做到这一点吗 这可以在 v1 66 中启用 现在在 Insiders 中 The editor quickSuggestions设置现在接受内联为 配置值
  • ChartJs:如何按时间值(而不是像素)以编程方式平移

    我使用的是chartJs 3 6 1 和 Chartjs plugin zoom 1 2 1 但我认为这并不重要 我有 2 个时间序列折线图 当我通过拖放平移一个图表时 我也想移动 平移另一个图表 为此 我为 graphA 启用了缩放 平移
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 为什么 Node.js 应用程序只能从 127.0.0.1/localhost 访问?

    我本来打算教我的朋友介绍 Node 但是后来 我想知道为什么这个代码来自nodejs org var http require http http createServer function req res res writeHead 20
  • Jwt 签名和前端登录身份验证

    我有这个特殊的 jwt sign 函数 Backend const token jwt sign id user id process env TOKEN SECRET expiresIn 1m res header auth token

随机推荐

  • 【#include外部项目文件时,需要#include头文件、#include 源文件 】

    在这里插入图片描述 如果省略 include Fibonacci Fib cpp 就会报错
  • STM32速成笔记—GPIO

    文章目录 一 什么是GPIO 二 GPIO的输入 输出模式 三 GPIO初始化配置 四 Boot引脚 五 一些特殊的GPIO 六 点亮LED 1 硬件电路 2 拉高 拉低GPIO 3 程序设计 七 GPIO的位带操作 一 什么是GPIO G
  • Unity Shader入门精要学习——透明效果

    透明效果 1 实现透明效果的两种方法 透明度测试 Alpha Test 要么完全透明 要么完全不透明 实现简单 实质上是一种剔除机制 通过将不满足条件 通常使用小于某个阈值来判定 一般使用clip方法 的片元舍弃的方法来达到完全透明效果 这
  • arcgis中制作出行od图_ArcGIS中的OD分析简介

    ArcGIS中的OD分析主要用于模拟真实情况 进行快捷高效 个性化的出行分析 主要有两种实现方式 本文仅有文字教程 操作视频也许会有的 有了我可怎么通知有需要的人呢关注我B站 啊哈哈哈 1st XY转线 直线段OD 简单地将OD两点连接起来
  • 06. 计数原理

    6 计数原理 6 1 分类加法计数原理与分步乘法计数原理 分类加法计数原理定义 完成一件事 有 n n n 类办法 在第1类办法中有 m 1 m 1
  • 揭秘闲鱼赚钱项目的高端玩法

    一个行业项目存在越久 它被挖掘出来的东西也就越多 自媒体 电商 网赚项目有许许多多 但真正赚到钱的却没几个人 究其原因还是项目操作门槛的问题 项目的操作门槛越低 竞争也就越激烈 要是人人都可以轻松操作 能够赚得到的利润就更加的少 最后真正赚
  • python 数组操作中的 “:” “:: ” “, ” python 中的 [:-1] 和 [::-1] [-1:-2:-1] [

    使用python版本3 7 首先先了解下python3 7中的下标 python下标有两套 一套是正的 一套是负的 引入负坐标的意义应该是方便将数组中的数据从右往左访问 a python 中的python 的下标描述如下 组 p y t h
  • 2019ICPC上海Spanning Tree Removal构造题

    刚打完2021杭电多校6 有个构造 当时没有做 回头看了一波巨佬的博客学了一手 在这里记录一下 题目链接 链接 https ac nowcoder com acm contest 4370 D 来源 牛客网 spj 题目描述 Bob has
  • SpringBoot项目多数据源的数据库连接池的启动

    Maven部分配置
  • 03-信息收集

    信息搜集 全面了解系统 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 信息收集是信息得以利用的第一步 也是关键的一步 信息收集工作的好坏 会影响整个渗透测试流程的进行 收集的信息越多后期可进行测试的目标就越多 信息收集包含资产收
  • python中items的作用_什么是python items函数?怎么使用它?

    这篇文章我们来学习一下关于python字典之中的python items函数的相关知识 items函数是什么意思 这个函数有什么作用都将会在接下来的文章之中得到解答 描述 Python 字典 Dictionary items 函数以列表返回
  • vue3 watch 监听多值以及深度监听用法

    1 监听单个值 引入 import watch from vue import useRouter from vue router export default setup const route useRouter 获取当前路由地址 wa
  • linux kernel file_open

    内核空间与用户空间 在vfs read和vfs write函数中 其参数buf指向的用户空间的内存地址 如果我们直接使用内核空间的指针 则会返回 EFALUT 这是因为使用的缓冲区超过了用户空间的地址范围 一般系统调用会要求你使用的缓冲区不
  • Qt VTK ITK安装与测试(三)ITK的安装与测试

    ITK的安装与测试 安装简介 本部分讲述使用cmake加VS2010编译 安装ITK库 基本步骤和VTK安装时相同 而后测试VTK与ITK的联合开发 VTK安装步骤 1 资源下载 资源下载网址 http www itk org ITK re
  • 【笔记】python中的for循环(遍历列表)、for循环中的一些缩进问题

    文章目录 一 for循环 遍历列表 在for循环中执行更多的操作 二 for循环中的一些缩进问题 一 for循环 遍历列表 我们经常需要遍历列表的所有元素 对每个元素执行相同的操作 这种情况下 我们就需要使用for循环 下面我们举几个栗子来
  • 专业CPU信息检测工具:CPU-Z

    今天小编为大家测试了一款轻量级的CPU处理器的测试工具 可以查看CPU的详细信息 以供各位同学们学习 一 简单介绍 CPU Z是一款非常流行的CPU检测软件 被广大用户所熟知 它是目前最受欢迎的CPU检测软件之一 除了Intel和AMD自带
  • SQLi-LABS Less-29到Less-31

    Less 29题目 Less 29的题目提到了WAF 看题目的意思应该是一个保护网站的东西 百度了一下 WAF就是Web Application Firewall 主要功能是拦截入侵尝试 比如SQL Injection XSS 路径遍历 窃
  • Java中insert()方法的使用

    insert 函数表示在字符串中插入字符串 StringBuffer insert int index String str 在Java中最常用instert方法的是这两个类型StringBuffer和StringBuilder 首先需要先
  • elementui的文件上传功能-.上传文件-带参数-手动

    elementui的文件上传功能 上传文件 带参数 手动
  • JS函数(二)基础 return 返回值

    创建函数 function 函数名 形参变量列表 函数体 return 返回值 return 1 什么是 返回 return语句将终止当前函数并返回当前函数的值 2 为什么要用 我们先来看一组代码