JavaScript 函数-01

本文详细介绍了JavaScript函数的基础概念,包括函数的作用、声明方式、调用与返回值、参数理解、作用域链及不同类型的参数处理。深入剖析了形参和实参、默认参数、arguments对象的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day 06 JavaScript 笔记

1 函数

1.1 函数概述

① 什么是函数
  • 函数是具有特定功能的代码块。
  • 在JavaScript ,函数也是一种类型,属于对象类型,使用typeOf 判断函数返回function。
② 函数的作用
  • 函数可以被调用多次,提高代码的重用性。
  • 可以把整个代码项目,通过函数模块化。
  • 封装代码,让函数内部的代码对外不可见。
③ 函数的组成
  • 函数名
  • 参数
  • 函数体
  • 返回值

1.2 声明函数的三种方式

① function 关键字方式
function 函数名([参数列表...]) {
 	函数体语句...;   
}
② 表达式方式
var 函数名 = function([参数列表...]) {
    函数体语句...;
}
③ Function 构造函数方式(了解)
var 函数名 = new Function('函数体语句...');
var 函数名 = new Function('参数1', '参数2', '参数3', '函数体语句...');
var 函数名 = Function('函数体语句...');
var 函数名 = Function('参数1', '参数2', '参数3', '函数体语句...');

1.3函数的调用和返回值

① 函数调用
  • 函数名的后面加括号,才是函数的调用,函数中的语句才可以执行。
  • 函数名后面没有括号,函数不会被调用,函数中的语句也不会执行。
② 返回值
  • 函数调用表达式(函数名 + 括号)的值是函数的返回值。
  • 在函数体内部,使用return 关键字可以设置返回值,需要在return 的右边写个表达式(表达式的值就是函数返回值)。
  • 如果函数中没有return 或者 return 的右边没有表达式,函数默认返回 undefined。
  • return 关键字除了可以设置函数的返回值,还可以结束函数的执行,执行了return之后,函数体内 return 后面的代码就不会执行。

1.4 函数的参数

① 形参和实参

**形参:**定义函数的时候所设置的参数,形参就像没有赋值的变量,形参的形式必须以变量名形式给出。

**实参:**调用函数时给的参数,用于给形参赋值,实参的形式可以是变量、直接量、表达式。

② 形参和实参的数量问题

1、设置了多个形参,调用函数的时候就给多少个实参。

2、如果实参的个数比形参多,实参按照顺序依次给形参赋值,多余的实参就没有用了,自动忽略。

3、如果实参的个数比形参的个数少,实参按照顺序依次给形参赋值,后面的形参没有对应的实参,默认赋值为 undefined 。

③ 形参的默认值(可选参数)

ES5 中给形参设置默认值的方式:

function 函数名(参数1,参数2) {
    if (参数2 === undefined) {
        参数2 = 默认值;
    }
}

ES6 中给形参设置默认值的方式

function 函数名(参数1,参数2=默认值) {
    
}

**注意:**有默认值的形参一定要放在后面。

④ arguments

1、arguments 只能在函数内使用,arguments 是系统定义好的变量。

2、arguments 可以得到调用函数时给的所有实参。

3、arguments 是一个类数组(不是真正的数组),可以通过索引读取其中的成员,具有length 属性得到长度,可以使用 for 循环遍历里面的成员。

4、JavaScript 函数中获取实参,可以通过设置形参,也可以通过 arguments 。

1.5 作用域

① 变量的作用

变量的作用域:变量的可作用范围,根据变量的作用域,可以把变量分为全局变量局部变量

**全局变量:**在函数外定义的变量就是全局变量,全局变量的作用域是全局。

**局部变量:**在函数内定义的变量就是局部变量,局部变量的作用域是所在的函数。

注意实现:

​ 1、形参是局部变量,作用域就是所在的函数。

​ 2、函数名本质上是变量名,所以说函数本身也有作用域。

② 作用域链

​ 1、**什么是作用域链:**函数的嵌套可以形成作用域链。

​ 2、**作用域链的作用:**作用域链描述变量的查找过程。使用变量的时候,先从本作用域查找有没有声明该变量,如果没有去上层作用域查找,有就停止查找,没有继续向上层作用域查找,一直到全局作用域,如果没有就显示报错。

​ 3、作用域链只与函数声明的位置有关系,与函数调用的位置无关系!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值