JavaScript系列从入门到精通系列第十五篇:JavaScript中函数的实参介绍返回值介绍以及函数的立即执行

文章目录

一:函数的参数

1:形参如何定义

2:形参的使用规则

二:函数的返回值

1:函数返回值如何定义

 2:函数返回值种类

三:实参的任意性

1:方法可以作为实参

2:将匿名函数作为参数传递给函数

3:两种写法的区别

四:返回值的任意性

1:方法返回值的任意性

2:方法返回值可以是函数

五:如何立即执行函数

1:函数立即执行


 

一:函数的参数

1:形参如何定义

        定义一个用于求和的参数。

function sum(){console.log(1+1);    
}

        可以在一个参数中指定一个或者多个形参。多个形参之间使用逗号分割。声明 形参就相当于在函数内部声明了对应的变量,但是并没有赋值,赋值是调用的时候进行赋值。 

function sum(a , b){console.log(1+1);    
}sum(1,2);
sum(true,false);
sum(122,"hello");

2:形参的使用规则

        形参赋值的时候不会检查实参的类型。调用函数时,多余的参数也不会被赋值。如果实参的数量小于形参数量,那个形参将是undefined。

二:函数的返回值

1:函数返回值如何定义

function sum(a ,b ,c){return a + b + c;
}

        return 之后的值将会被作为一个执行结果进行返回,我们可以当一个变量来接受这个结果。 

function sum(a ,b ,c){return a + b + c;
}var  result = sum(1,2,3);

        return 后边的语句都不会执行,也不会报错。 

 2:函数返回值种类

function sum(a ,b ,c){return;
}var  result = sum(1,2,3);//undefined

        如果我们的后边不跟值的话,返回的就是undefined。

        return后边可以跟任意类型的值。Number、String、Undefined、Object都行。

三:实参的任意性

1:方法可以作为实参

        这一段要好好品一品!!!!!!!!!

function sayHello(){console.log("这里是sayHello方法");
}function fun(a){a();
}fun(sayhello);

        把函数作为了参数传递到函数里边,然后直接去调用这个函数。这个写法也是很清奇。

2:将匿名函数作为参数传递给函数

function sayHello(){console.log("这里是sayHello方法");
}function fun(a){a();
}fun(function(){alert("hello")});

         对象能干的事,函数都能干。

3:两种写法的区别

function sayHello(){console.log("这里是sayHello方法");
}function fun(a){a();
}fun(sayhello);
fun(sayhello());

        这样写的话,一个是将函数作为参数传递了过去,另外一个是将函数的返回值作为参数传递了过去。 

四:返回值的任意性

1:方法返回值的任意性

        break结束循环,continue跳出本次循环,return结束方法。

        方法返回值可以是任意类型,Number、String、Object

2:方法返回值可以是函数

function fun (){function fun1(){alert("这是一个方法0");}return fun1;
}var a = fun();
console.log(a);//这里打印的是一个函数a();

        方法内部还可以定法函数对象,将函数对象作为一个参数进行返回,然后使用一个变量接收,然后调用即可。

        我们甚至可以这样:

function fun (){function fun1(){alert("这是一个方法0");}return fun1;
}var a = fun();
console.log(a);//这里打印的是一个函数fun()();

        强调一个概念,一说任意类型就包括对象,一说对象就包括函数! 对象能干的事,函数都能干

五:如何立即执行函数

1:函数立即执行

function(){alert('我是一个中国人,我爱你们');
}

        这样就定义了一个匿名函数,调用函数的话:函数对象(),那我们就可以这样:

(function(){alert('我是一个中国人,我爱你们');
})();

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Boot】创建一个 Spring Boot 项目

创建一个 Spring Boot 项目 1. 安装插件2. 创建 Spring Boot 项目3. 项目目录介绍和运行注意事项 1. 安装插件 IDEA 中安装 Spring Boot Helper / Spring Assistant / Spring Initializr and Assistant插件才能创建 Spring Boot 项⽬ (有时候不用安装,直…

【排序算法】冒泡排序

文章目录 一:排序算法1.1 介绍1.2 分类 二:冒泡排序2.1 基本介绍2.2 图解冒泡排序算法2.3 代码实现 三:算法性能分析3.1 时间复杂度3.2 空间复杂度 一:排序算法 1.1 介绍 排序也称排序算法(Sort Algorithm),排序是将…

SpringCloud-消息组件

1 简介 了解过RabbitMQ后,可能我们会遇到不同的系统在用不同的队列。比如系统A用的Kafka,系统B用的RabbitMQ,但是没了解过Kafka,因此可以使用Spring Stream,它能够屏蔽地产,像JDBC一样,只关心SQ…

C# 给某个方法设定执行超时时间

C# 给某个方法设定执行超时时间在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死。 在这时、我们可以通过Thread、Thread Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死, 但是…

el-table进阶(每条数据分行或合并)

最麻烦的还是css样式&#xff0c;表格样式自己调吧 <!-- ——————————————————————————————————根据数据拓展表格—————————————————————————————————— --> <div style"display: flex"&…

oralce配置访问白名单的方法

目录 配置sqlnet.ora文件 重新加载使配置生效 注意事项 Oracle数据库安全性提升&#xff1a;IP白名单的配置方法 随着互联网的发展&#xff0c;数据库安全问题也越来越严重。Oracle是目前使用较为广泛的一款数据库管理系统&#xff0c;而IP白名单作为提升数据库安全性的有效…

深度学习——权重衰减(weight_decay)

深度学习——权重衰减&#xff08;weight_decay) 文章目录 前言一、权重衰减1.1. 范数与权重衰减1.2. 高维线性回归1.3. 从零开始实现1.3.1.初始化模型参数1.3.2. 定义L₂范数惩罚1.3.3. 定义训练代码实现1.3.4. 不管正则化直接训练1.3.5. 使用权重衰减 1.4. 简洁实现 总结 前言…

vue 项目打包性能分析插件 webpack-bundle-analyzer

webpack-bundle-analyzer 是 webpack 的插件&#xff0c;需要配合 webpack 和 webpack-cli 一起使用。这个插件可以读取输出文件夹&#xff08;通常是 dist&#xff09;中的 stats.json 文件&#xff0c;把该文件可视化展现&#xff0c;生成代码分析报告&#xff0c;可以直观地…

Leetcode901-股票价格跨度

一、前言 本题基于leetcode901股票价格趋势这道题&#xff0c;说一下通过java解决的一些方法。并且解释一下笔者写这道题之前的想法和一些自己遇到的错误。需要注意的是&#xff0c;该题最多调用 next 方法 10^4 次,一般出现该提示说明需要注意时间复杂度。 二、解决思路 ①…

神经网络中的知识蒸馏

多分类交叉熵损失函数&#xff1a;每个样本的标签已经给出&#xff0c;模型给出在三种动物上的预测概率。将全部样本都被正确预测的概率求得为0.70.50.1&#xff0c;也称为似然概率。优化的目标就是希望似然概率最大化。如果样本很多&#xff0c;概率不断连乘&#xff0c;就会造…

关于丢失msvcp71.dll的5个解决办法,msvcp71.dll丢失原因分析

计算机已经成为我们生活和工作中不可或缺的一部分&#xff0c;在使用计算机的过程中&#xff0c;我们经常遇到各种软件或应用程序崩溃的情况。其中&#xff0c;一个常见的错误提示是“MSVCP71.dll丢失”。这个错误通常出现在运行使用Visual C Redistributable for Visual Studi…

数据结构——多重链表的实现

//多重列表的实现 #include<stdio.h> #include<stdlib.h> struct lnode {int row,col,value; }; //没有用到down指针 //没有用到tag和next指针 typedef struct node {int tag;//区分头结点(0)和非零元素结点(1)struct node* right;struct node* down;//共用体与结…

Django基础讲解-路由控制器和视图(Django-02)

一 路由控制器 参考链接&#xff1a; Django源码阅读&#xff1a;路由&#xff08;二&#xff09; - 知乎 Route路由, 是一种映射关系&#xff01;路由是把客户端请求的 url路径与视图进行绑定 映射的一种关系。 这个/timer通过路由控制器最终匹配到myapp.views中的视图函数 …

抄写Linux源码(Day14:从 MBR 到 C main 函数 (3:研究 head.s) )

回忆我们需要做的事情&#xff1a; 为了支持 shell 程序的执行&#xff0c;我们需要提供&#xff1a; 1.缺页中断(不理解为什么要这个东西&#xff0c;只是闪客说需要&#xff0c;后边再说) 2.硬盘驱动、文件系统 (shell程序一开始是存放在磁盘里的&#xff0c;所以需要这两个东…

山西电力市场日前价格预测【2023-10-08】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-08&#xff09;山西电力市场全天平均日前电价为258.40元/MWh。其中&#xff0c;最高日前电价为496.19元/MWh&#xff0c;预计出现在18:45。最低日前电价为0.00元/MWh&#xff0c;预计出…

【FreeRTOS】内存管理简单介绍

有没有想过什么移植FreeRTOS时&#xff0c;为什么有多种的内存文件&#xff0c;我们工程只使用Heap_4&#xff0c;其他的有什么用&#xff1f;每个的区别是什么&#xff1f;FreeRTOS是一种流行的实时操作系统&#xff0c;广泛应用于嵌入式系统开发中。在嵌入式系统中&#xff0…

(三)行为模式:8、状态模式(State Pattern)(C++示例)

目录 1、状态模式&#xff08;State Pattern&#xff09;含义 2、状态模式的UML图学习 3、状态模式的应用场景 4、状态模式的优缺点 &#xff08;1&#xff09;优点 &#xff08;2&#xff09;缺点 5、C实现状态模式的实例 1、状态模式&#xff08;State Pattern&#x…

光伏发电预测(LSTM、CNN_LSTM和XGBoost回归模型,Python代码)

运行效果&#xff1a;光伏发电预测&#xff08;LSTM、CNN_LSTM和XGBoost回归模型&#xff0c;Python代码&#xff09;_哔哩哔哩_bilibili 运行环境库的版本 光伏太阳能电池通过互连形成光伏模块&#xff0c;以捕捉太阳光并将太阳能转化为电能。因此&#xff0c;当光伏模块暴露…

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏&#xff1f; 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏&#xff1f; 2、进程句柄泄漏 2.1、何为进程句柄泄漏&#xff1f; 2.2、创建线程时的线程句柄泄漏 …

成功解决@Async注解不生效的问题,异步任务处理问题

首先&#xff0c;有这样一个异步监听方法 然后配置好了异步线程池 package com.fdw.study.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Conf…