一 、函数

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)如果全局作用域也没找到,则报错。

什么是函数?如何定义函数?相关推荐

  1. matlab 定义函数 调用,matlab 定义函数,matlab定义函数并调用

    matlab 定义函数,matlab定义函数并调用,Matlab自定义函数详解 很久以前写的一篇Matlab自定义函数访问量很大,可惜没有点赞的,我感觉是我没讲清楚,这里又写了一篇笔记 Matlab函 ...

  2. java光标移动函数_文件内光标的移动 函数基础 定义函数的三种形式 函数的返回值 调用方式...

    # with open(r'a.txt', 'r', encoding='utf-8')as f: # data1=f.read() # print('>1>:',data1) # pri ...

  3. 怎么调出matlab的函数,matlab定义函数【搞定方法】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统matlab定义函数的问题,突然遇到win7系统matlab定义函数的问题就不知道该怎么办了,其实win7系统matlab定义函数的解决方法非常简单,按照 ...

  4. c++ 函数中定义函数

    // 借用类,在类中定义函数 1 #include <iostream> 2 3 int main(int argc, char* argv[]) 4 { 5 class { 6 prot ...

  5. python——函数(定义函数、传递实参、返回值、传递列表、传递任意数量的实参、将函数存储在模块中、函数编写指南)

    目录 定义函数 传递实参 返回值 传递列表 传递任意数量的实参 将函数存储在模块中 函数编写指南 定义函数 #------定义函数---------- def user():print('hello! ...

  6. C++ 在函数中定义函数

    文章目录 Part.I 实例 Part.II 解释 Chap.I Lambda 表达式 C++在函数中也能定义函数?当让不可能,但是定义函数对象却是可以的.如果用旧的方法定义一个函数对象,那就要自己编 ...

  7. 函数的定义 函数的基本运算 函数的基本性质

    函数的传统定义: 设在某变化过程中有两个变量x.y,如果对于x在某一范围内的每一个确定的值,y都有唯一确定的值与它对应,那么就称y是x的函数,x叫做自变量. 我们将自变量x取值的集合叫做函数的定义域, ...

  8. python定义一个求和函数_Python定义函数实现累计求和操作

    一.使用三种方法实现0-n累加求和 定义函数分别使用while循环.for循环.递归函数实现对0-n的累加求和 1.使用while循环 定义一个累加求和函数sum1(n),函数代码如下: 2.使用 f ...

  9. matlab怎么做函数,Matlab定义函数怎么操作?进行定义函数教程分享

    当我们在使用Matlab的时候,因需求要进行定义函数,有些朋友还不熟悉操作方法?下面一起去看看Matlab定义函数的详细操作教程,相信你会喜欢的. Matlab定义函数的详细操作教程 方法一:通过in ...

  10. 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...

    matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...

最新文章

  1. 数字图像处理系统组成 及研究内容
  2. 以下选项中python用于异常处理结构_《Python 程序设计》复习题
  3. 兼容最新PS2021 Raya Pro 5 for Mac——值得推荐的PS终极数字混合扩展面板
  4. Launch MySQL on my PC
  5. Sublime Text 3 破解版 + 注册机 + 汉化包 + 教程
  6. chrome版本太旧 无法更新 问题解决
  7. Jmeter之Bean shell使用
  8. cv2.cvtColor() 的使用
  9. 计算机的计算百分比的函数是哪个好,excel用函数计算百分比计算的方法
  10. 使用vue简单实现音乐播放器
  11. Gary Marcus:AI 可以从人类思维中学习的11个启示
  12. C语言 植物大战僵尸修改阳光值 代码实现
  13. 我决定切换到 Vue.js,不再使用 React!
  14. 智能存储 | 视频增强“全家桶”,为您的视频快速“换脸”
  15. Arcgis开发系列2 - 修改arcgis infowindow 放大和缩小的模板
  16. python爬虫——爬取豆瓣TOP250电影
  17. 每一个优秀的人,都有一段默默努力的时光
  18. 华为手环6鸿蒙,智能手环盘点:华为手环6比小米手环6贵在哪?
  19. 京东店铺如何做好关联销售?
  20. webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成

热门文章

  1. Transformer的详细深入理解
  2. 如何提升w ndows10系统网速,怎么提升电脑网速win10
  3. 第18届智能车竞赛中的智能视觉组比赛细节遗留的问题-短视频脚本
  4. html标题显示hex,HTML特殊字符显示, HTML实体,HTML Entity, HTML Entity Code, HTML Css Code ,HTML Hex Code...
  5. NodeJS之cluster模块
  6. 【论坛转贴】IP spoof欺骗关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!
  7. 使用while循环,求1+11+111+1111+11111+111111
  8. 金融信创开门红丨神州信息分布式核心上线三连发!
  9. 高一计算机计算器,上了高一 赶紧扔了计算器吧!
  10. 牛顿黏度定律【Newton's Law of Viscosity】