Java script中的函数使用方法
前言
什么是函数,就是把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在开发中可以反复调用,函数的作用就是封装一段代码,可以重复使用。
1. 函数的声明及调用
1.1声明
- 关键字声明
function 函数名(){ // 函数体 }
- 表达式声明
var fn = function() { // 函数体 }
- 特点:
函数声明的时候,函数体并不会执行,只要当函数被调用的时候才会执行。
一个函数一般都特定的用来干 一件 事情
1.2 调用
- 调用函数的语法:
函数名();
- 特点:
函数体只有在调用的时候才会执行,调用需要()进行调用。
可以调用多次(重复使用)
// 声明函数 function sayHi() { console.log("吃了没?"); } // 调用函数 sayHi(); // 求1-100之间所有数的和 function getSum() { var sum = 0; for (var i = 0; i < 100; i++) { sum += i; } console.log(sum); } // 一段代码可以多次调用 getSum(); getSum(); getSum();
1.2 参数
- 为什么要有参数
function getSum() { var sum = 0; for (var i = 1; i <= 100; i++) { sum += i; } console.log(); } // 虽然上面代码可以重复调用,但是只能计算1-100之间的值 // 如果想要计算n-m之间所有数的和,应该怎么办呢?
- 语法:
// 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部 // 带参数的函数声明 function 函数名(形参1, 形参2, 形参...){ // 函数体 } // 带参数的函数调用 函数名(实参1, 实参2, 实参3);
- *形参和实参 *
- 形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。
- 实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。
function fn(a, b) { console.log(a + b); } var x = 5, y = 6; fn(x,y); // x,y实参,有具体的值。 // 函数执行的时候会把x,y复制一份给函数内部的a和b, // 函数内部的值是复制的新值,无法修改外部的x,y
JS 函数在调用时,允许传多个实参,就是实参个数可以比形参个数多;
1.3 函数的返回值
当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西。也就是返回值。函数通过return返回一个值
返回值语法:
//声明一个带返回值的函数 function 函数名(形参1, 形参2, 形参...){ //函数体 return 返回值; } //可以通过变量来接收这个返回值 var 变量 = 函数名(实参1, 实参2, 实参3);
返回值详解:
如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined 如果函数使用 return语句,那么跟在return后面的值,就成了函数的返回值 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
作业:
- 求1-n之间所有数的和
- 求n-m之间所有数的和
- 求2个数中的最大值
1.4 函数相关的其它事情
1.4.1 匿名函数与自调用函数
匿名函数:没有名字的函数
匿名函数如何使用:
将匿名函数赋值给一个变量,这样就可以通过变量进行调用
匿名函数如果没有任何变量来表示它,那么就不能直接调用来执行,因此可以通过匿名函数的自调用的方式来执行
(function () { alert(123); })();
关于自执行函数(匿名函数自调用)的作用:防止全局变量污染。
1.4.2 函数本身也是值
function fn() {} console.log(typeof fn);
- 函数作为参数
因为函数也是一种值类型,可以把函数作为另一个函数的参数,在另一个函数中调用
function f1(f){ //f = function f2(){ // console.log(2); //} f(); } function f2(){ console.log(2); } f1(f2); //2
- 函数做为返回值
因为函数是一种类型,所以可以把函数可以作为返回值从函数内部返回。
function fn(b) { var a = 10; return function () { alert(a+b); } } var f = fn(5); f(); //15
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Hyperledger Fabric C#链码开发指南
本教程介绍如何使用.NET Core开发一个简单的Hyperledger Fabric链码,用于进行基本的资产管理和转账操作。如果你是一个熟练的.NET/C#开发人员,由于种种原因需要使用Hyperledger Fabric作为区块链平台,那么除了转身投入Java/Node.js/Go的怀抱之外,这也提供了另外一种选择。 相关教程推荐: .NET / C# 以太坊开发详解 .NET / C# 比特币开发详解 1、Fabric链码.NET Core开发包 首先创建一个.NET Core项目,在命令行执行如下命令添加对Fabric链码.NET Core开发包的依赖: dotnet add package Thinktecture.HyperledgerFabric.Chaincode \ --version 1.0.0-prerelease.74 Thinktecture.HyperledgerFabric.Chaincode链码开发包提供了两种不同的方法来开发Hyperledger Fabric链码。 使用底层API:通过实现IChaincode接口来开发超级账本Fabric链码是一种比...
- 下一篇
2019 Real World CTF举行 白帽黑客上演“神仙打架”
12月7日,由长亭科技举办的2019 Real World CTF国际网络安全大赛在北京正式拉开帷幕。本次大赛以“Hack the real”为主题,为期两天的盛会囊括“国际网络安全大赛”“阿里云安全挑战赛”“安全训练营”“技术论坛”“Hack Valley”五大板块,国际网络安全战队、行业专家齐聚一堂,共同打造一场极客盛典。 上午9点,12支入围线下总决赛的知名国际战队悉数亮相。他们中有来自卡内基梅隆大学的明星战队PPP,有荣获过多年Hack.lu CTF冠军的波兰战队 Dragon Sector,有2018年世界排名第四的日本战队TokyoWesterns,还有CTFtime实时排名第二名的Balsn……高手云集,再次开启一场基于真实世界的网络安全超强博弈。 比赛现场 在充满科技感的赛场里,12强战队各自据守一方“阵地”。选手以外国面孔居多,共同的特征就是“年轻”和“专注”。他们时而深思,时而队内交流,时而在键盘上飞速敲击,紧张的氛围笼罩全场。通过现场大屏幕上闪现的代码和画面,观众能真切感受到,一场看不见硝烟的战争已经打响。 选手认真应战中 在另一个会场,备受瞩目的阿里云安全挑战赛...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装