什么是函数?如何定义函数?
一 、函数
1.1定义
封装了一段可被重复执行并调用的代码。
1.2 使用函数的步骤
1.定义函数 。 把代码放到盒子里。(封装函数)2.调用函数。
1.3 函数的分类
**系统内置函数**alert();document.write();console.log();Number();parseInt();**自定义函数**
1.4定义函数的两种方式
1.4.1 声明式(利用函数关键字自定义函数 又称 ‘命名函数’ )
语法格式:function 函数名( ){代码块。return 返回值。【可选】}1、 function 声明函数的关键字2、 函数名:与变量名的概念一样,命名规则也一样。
1.4.2 赋值式
var 变量名 = function( ){ 这里的函数名是变量 ,只不过变量里面存的是值,而函数表达式里面,存的是函数代码块。return 返回值。【可选】}**区别:**声明式函数可以在任意位置调用。但是赋值式函数只能在定义函数之后调用。
赋值式执行的顺序:
(1)先定义了这个函数。
(2)将这个函数的地址赋值给前面这个变量。
**函数的优点:**简化代码,提高开发效率。有利于维护。
函数的参数:实参和形参。
实参:函数调用时传递的参数。
形参:函数定义时,括号里的就是形参。
只有形参,不传实参,形参就是undifined。
1.4.3 如何调用函数?
函数名();根据参数与返回值的不同,可将函数分为4种:1.无参数无返回值。2.有参数无返回值。3.无参数有返回值4.有参数有返回值。
【注意】函数名 和 函数名()是不一样的。函数名是一个变量,表示这个函数。
没有函数名的函数我们叫做匿名函数。
函数名( ) ; 是指执行这个函数体内的代码。
1.5 封装函数的步骤(重要)
封装函数的步骤:
1.将同属于一个功能的代码抽离出来,作为函数的执行语句,放在函数体{ }中。
2.分析有没有不确定的值。将不确定的值作为形参。
3.如果需要对执行的结果进行不同的操作处理,则定义返回值。否则,可以不需要。
eg:function getSum(n){var sum = 0;for(var i = 1;i<=n;i++){sum+=i;}return sum;}var sum = getSum(200);document.write(sum);console.log(sum);
**加密规则:**每位数+5,除以10得到余数,代替当前的数,将第一位和第四位交换,第二位和第三位交换。得到的数就是加密的数。返回该加密后的数字。function encrypt(){var num = Number(prompt("请输入一个四位数"));if(num>=1000&&num<=9999){//千位var q = parseInt(num/1000);//百位var b = parseInt(num/100)%10;//十位var s = parseInt(num/10)%10;//个位var g = num%10;q+=5;b+=5;s+=5;g+=5;q= q % 10;b = b % 10;s = s % 10;g = g % 10;num = ""+g+s+b+q;return num;}else{alert("瞎吗?四位数!!")}}alert(encrypt());
二、arguments
2.1 用途
当我们不确定有多少个参数传递时,可以用arguments来获取,在js中,argument实际上是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
2.2 arguments:
每个函数都有一个arguments。使用存储传入的参数。
arguments的结构类似于数组。(伪数组:不能使用数组的一些方法。但是用法与数组类似。)
2.3 伪数组(并非真正意义上的数组)
1、具有数组的length属性。
2、按照索引的方式存储的。
3、它没有真正数组的方法。
4、可以按照数组的方式遍历arguments。
使用方法:访问第n个参数: arguments[n]获取最后一个参数: arguments[arguments.length-1]获取参数的个数: arguments.length
2.4 优点
使用形参:让代码更容易阅读和理解。
eg:
1、 对传入的不定数据的数值进行求和function add(){// console.log(arguments.length);// console.log(arguments[1]);// return arguments[0]+arguments[1];var sum = 0;for(var i = 0;i<arguments.length;i++){sum = sum + arguments[i];}return sum;
}
// var n = add(4,5,6,8)
document.write(add(4,7,6,2,10,24,64));
三、作用域:
变量存在的范围。
1、任何程序执行都需要占用内存。函数调用时也需要占用内存空间。
2、垃圾回收机制
当内存空间没有任何变量指向时,或者函数执行完毕后,它们占用的内存空间就会被释放,返还给系统。
全局变量:
(1)直接写在script标签中的变量,在页面的任意位置使用。在函数内可以使用全局变量。
(2)全局变量的内存空间,页面打开时创建,页面关闭时销毁。
局部变量:
(1)定义在函数内部的变量。这个变量只能在函数内部使用。形参也是局部边量。
(2)局部变量的内存空间,在函数调用的时候创建,函数执行完毕后销毁。
总结:
(1)全局变量可以在任意的函数内部使用。
(2)局部变量只能在当前的函数内部使用。
(3)当函数内使用一个变量时,它会现在自身的作用域(函数内部)寻找该变量,如果找到直接使用,如果没有找到则向上一级寻找,直到全局作用域。
(4)如果全局作用域也没找到,则报错。
什么是函数?如何定义函数?相关推荐
- matlab 定义函数 调用,matlab 定义函数,matlab定义函数并调用
matlab 定义函数,matlab定义函数并调用,Matlab自定义函数详解 很久以前写的一篇Matlab自定义函数访问量很大,可惜没有点赞的,我感觉是我没讲清楚,这里又写了一篇笔记 Matlab函 ...
- java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...
# with open(r'a.txt', 'r', encoding='utf-8')as f: # data1=f.read() # print('>1>:',data1) # pri ...
- 怎么调出matlab的函数,matlab定义函数【搞定方法】
喜欢使用电脑的小伙伴们一般都会遇到win7系统matlab定义函数的问题,突然遇到win7系统matlab定义函数的问题就不知道该怎么办了,其实win7系统matlab定义函数的解决方法非常简单,按照 ...
- c++ 函数中定义函数
// 借用类,在类中定义函数 1 #include <iostream> 2 3 int main(int argc, char* argv[]) 4 { 5 class { 6 prot ...
- python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)
目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...
- C++ 在函数中定义函数
文章目录 Part.I 实例 Part.II 解释 Chap.I Lambda 表达式 C++在函数中也能定义函数?当让不可能,但是定义函数对象却是可以的.如果用旧的方法定义一个函数对象,那就要自己编 ...
- 函数的定义 函数的基本运算 函数的基本性质
函数的传统定义: 设在某变化过程中有两个变量x.y,如果对于x在某一范围内的每一个确定的值,y都有唯一确定的值与它对应,那么就称y是x的函数,x叫做自变量. 我们将自变量x取值的集合叫做函数的定义域, ...
- python定义一个求和函数_Python定义函数实现累计求和操作
一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 f ...
- matlab怎么做函数,Matlab定义函数怎么操作?进行定义函数教程分享
当我们在使用Matlab的时候,因需求要进行定义函数,有些朋友还不熟悉操作方法?下面一起去看看Matlab定义函数的详细操作教程,相信你会喜欢的. Matlab定义函数的详细操作教程 方法一:通过in ...
- 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...
matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...
最新文章
- 数字图像处理系统组成 及研究内容
- 以下选项中python用于异常处理结构_《Python 程序设计》复习题
- 兼容最新PS2021 Raya Pro 5 for Mac——值得推荐的PS终极数字混合扩展面板
- Launch MySQL on my PC
- Sublime Text 3 破解版 + 注册机 + 汉化包 + 教程
- chrome版本太旧 无法更新 问题解决
- Jmeter之Bean shell使用
- cv2.cvtColor() 的使用
- 计算机的计算百分比的函数是哪个好,excel用函数计算百分比计算的方法
- 使用vue简单实现音乐播放器
- Gary Marcus:AI 可以从人类思维中学习的11个启示
- C语言 植物大战僵尸修改阳光值 代码实现
- 我决定切换到 Vue.js,不再使用 React!
- 智能存储 | 视频增强“全家桶”,为您的视频快速“换脸”
- Arcgis开发系列2 - 修改arcgis infowindow 放大和缩小的模板
- python爬虫——爬取豆瓣TOP250电影
- 每一个优秀的人,都有一段默默努力的时光
- 华为手环6鸿蒙,智能手环盘点:华为手环6比小米手环6贵在哪?
- 京东店铺如何做好关联销售?
- webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成
热门文章
- Transformer的详细深入理解
- 如何提升w ndows10系统网速,怎么提升电脑网速win10
- 第18届智能车竞赛中的智能视觉组比赛细节遗留的问题-短视频脚本
- html标题显示hex,HTML特殊字符显示, HTML实体,HTML Entity, HTML Entity Code, HTML Css Code ,HTML Hex Code...
- NodeJS之cluster模块
- 【论坛转贴】IP spoof欺骗关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!
- 使用while循环,求1+11+111+1111+11111+111111
- 金融信创开门红丨神州信息分布式核心上线三连发!
- 高一计算机计算器,上了高一 赶紧扔了计算器吧!
- 牛顿黏度定律【Newton's Law of Viscosity】