13-1.函数的参数

函数的本质:

ü 函数的作用,代码重用,编写一个函数,就是为了解决一类问题。

ü 函数每次调用,都有一个结果,那么结果和什么相关呢?y = x , y = x2,y = sin(x)。和我们给定的某一个值相关的。

这就涉及到参数的问题。

​ 函数中的参数分为

形参:函数定义时小括号中的参数称为形参表示要传入什么样的值

实参:函数调用时输入的参数称为实参,具体的某个值

案例,我们需要定义一个函数,对两个数进行求和。

正是由于有了参数这么一个武器,所以我们的函数才得以重用。

多个参数由逗号 (,) 分隔

说明:

​ 在定义和调用函数的时候,对形式参数和实参要求没有那么严格。

​ 形参和实参的个数,可以不相等,程序不会出错,结果可能会出问题。

想要获取实参6,7怎么办

#13-2arguments

什么是arguments?

​ arguments是实参的一个集合;

说明:

ü arguments队形是用来接受实参的,每一个函数都有arguments对象,arguemnts只会在内部找自身的arguments,无法引用到外层的arguments

ü 我们将实参收集起来,放到一个arguments对象里,组成一个由实参构成的类数组,[实参1,实参2,实参3…..实参n]

ü 我们可以通过arguments的索引(0,1,2,3…),来访问每一个实参,

ü 访问格式:arguments[下标]

ü arguments.length:可以得到实参是个数

细节:

1) arguments[0]可以取到传入的第一个实参

2) arguments[arguments.length-1] 可以取到传入参数的最后一个实参

3) arguments的长度是由传入的实参个数决定的,而不是由定义函数时的命名参数的个数决定的

4) 没传参的时候arguments.length 为0.是个[]

5) 获取每一个实参:

#11-3.函数的返回值

我们每调用一个函数,希望得到一个什么东西呢?

y = x , y = 2x+1,y = sin(x)

实际上,在js开发中,我们调用一个函数,往往是需要通过它的处理,得到一个具体的结果。

函数中的return语句是指定函数调用的返回值

说明:

return只能在函数体中出现,如果不是的话会报语法错误

在使用ruturn语句时,函数就会停止执行,并返回指定的值,后面的语句不会被执行。

细节:

1) 没有使用return的时候,我们可以这么理解,在一个函数当中,最后一定会有一个return 语句,默认的是 return undefined。

2) 如果有 return 就是return的值。

3) 如果有return ,但是没有return后没有值,则返回undefined

​ 作业:

​ 1.函数封装(详情见文档)

#11-4.函数的作用域

什么是作用域?

首先,作用域是针对变量而言的。要定义一个变量,这个变量就有一个相应的作用域。

作用域是指变量的生效范围,在程序中,在什么范围之内可以访问,什么范围不能访问。

在js中,以函数为界,可以分为如下两种:

全局变量:不在任何函数内定义的变量就是全局变量。

局部变量:(函数内var 声明的变量)只能被函数自身读取(该变量的作用域是局部的)。

变量的规则:(变量的作用域)

1)如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量:

2)如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用。换句话说,不同函数内部的同名变量互相独立,互不影响:

3)函数外部的变量就算是和函数内部的变量名称相同,也是两个变量,没有任何关系,彼此不发生影响

  1. 函数内部的变量,没有用var时,会逐层向上查找

(如果把值赋给尚未声明的变量,是隐式声明,不会变量提升,直接为全局变量)

**a. ** 先执行函数,再输出变量

**b. ** 没有执行函数;直接输出

变量的生存周期:

JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

函数同名的话,后写的函数覆盖先写的函数。

注意:js没有重载

#小结:

\1. 函数的参数分为形参和实参;

\2. arguments是实参的集合

\3. return是函数的返回值,也是函数的结束语句

\4. 在函数体内声明的变量为局部变量,不再函数内声明的变量为全局变量

\5. 局部变量只能在函数体内使用,全局变量可以在任意地方使用;

js上 十三、函数初步-2的更多相关文章

  1. js上 十二、函数初步-1

    11-1.引入(认识函数) ​ 引入: 说起函数,其实我们并不陌生,在初中数学中我们就接触过函数:例如我们所学的 y = 2X+1 ; 这是一个二元一次方程,也是我们数字中的函数: ​ 当我们每次输入 ...

  2. js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功)

    js进阶 12-8 如何知道上一个函数的返回值是什么(如何判断上一个函数是否执行成功) 一.总结 一句话总结:event的result属性即可. 1.event的result属性的实际应用场景是什么? ...

  3. JS中给函数参数添加默认值

    最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为x var f ...

  4. JS中给函数参数添加默认值(多看课程)

    JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...

  5. Node.js 教程 06 - 函数

    前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...

  6. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

  7. js立即执行函数

    一.JS立即执行函数的写法 方式1.最前最后加括号 (function(){alert(1);}()); 方式2.function外面加括号   (function(){alert(1);})(); ...

  8. js 数组处理函数

    本文转载自有有<js 数组处理函数> concat 将参数列表连接到原数组后面形成一个新的数组并返回,原有数组不受影响. var arr = ["a","b& ...

  9. JS字符串替换函数:Replace(“字符串1″, “字符串2″),

    JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉, ...

随机推荐

  1. Linux学习 - 02 使用 - Centos8 - 网络配置相关

    『Centos8 网络配置』 题外话:最近太忙,利用仅有的周末空闲时间记录点东西,草率了. 问题1:安装 Centos8.2 minimal 过程中,只是设置了 WiFi的静态IP,没有进行[以太网] ...

  2. Linux下Docker容器安装与使用

    注:作者使用的环境是CentOS 7,64位,使用yum源安装. 一.Docker容器的安装 1.查看操作系统及内核版本,CentOS 7安装docker要求系统为64位.系统内核版本为 3.10及以 ...

  3. 系统兼容软件CrossOver和虚拟机软件,哪个好用?

    想要在Mac上运行Windows软件的方法有很多种,比较常见的有安装双系统以及虚拟机.但是安装双系统会导致一个很大的问题,就是占用了过多的硬盘空间,这样一来会导致可使用的空间减少. 目前来说,大家都不 ...

  4. 思维导图软件iMindMap:生活工作的好帮手

    思维导图iMindMap这样的好帮手在生活工作中能帮你打破困境,,至于它有哪些力所能及的事情就是下面小编要跟你讲的: 你是否经常遇到过这样的情况: 作为学生,你觉得学习紧张,虽然三更眠五更起,还是成绩 ...

  5. word-结构图

    公司单位上下级结构图 总经理 助理 副总经理 财务总监 财务部 人事部 行政部 出口部 进口部 运营总监 储运部 信息部 首先将内容按照上下级排序正确 插入-SmartArt-根据需要选择图形,以上内 ...

  6. ppt-页面大小和颜色更改

    1.ppt大小设置:设计--幻灯片大小--可选择标准.宽屏或自定义幻灯片大小--下拉 幻灯片大小可选择其他尺寸的幻灯片 2.设置图片背景 设计--设置背景格式--依次有纯色.渐变.图案等填充 2.1 ...

  7. redis 一致性分析

    转载: https://blog.csdn.net/qq32933432/article/details/108690254

  8. redis-cli 持久化,复制,哨兵,事务,流水线

    一.持久化: 快照文件RDB 保存"开始"创建新快照一刻的内存快照,创建过程的内存变化不会被记录 创建快照的办法有几种 1.客户端可以通过想Redis发送BGSAVE来创建一个快照 ...

  9. MindSpore手写数字识别初体验,深度学习也没那么神秘嘛

    摘要:想了解深度学习却又无从下手,不如从手写数字识别模型训练开始吧! 深度学习作为机器学习分支之一,应用日益广泛.语音识别.自动机器翻译.即时视觉翻译.刷脸支付.人脸考勤--不知不觉,深度学习已经渗入 ...

  10. 线性代数中的线性方程组(chapter 1)

    目录 线性代数中的线性方程组 线性方程组 行化简解法和阶梯型矩阵 向量方程 矩阵方程$Ax = b$ 线性代数中的线性方程组 第一章从线性方程组的角度,通过解线性方程组,开始解释数学矩阵,以及和线性代 ...