知识目标
- 理解函数的基本概念;
- 掌握函数的定义和调用;
- 理解函数参数和返回值及作用域;
- 掌握函数高阶用法。
1. 理解函数的基本概念
明确函数在 JavaScript 里是一段可重复使用的代码块,它能接收输入参数,执行特定任务,并返回结果。
明白函数在程序设计中的重要性,比如实现代码复用、模块化编程,提高代码的可维护性和可读性。
2. 掌握函数的定义和调用
2.1 函数声明
学会使用 function 关键字来定义函数,掌握函数名、参数列表和函数体的语法。
2.1.1 声明函数
function 函数名(参数1, 参数2, ...) {
// 函数体语句块;return 返回值;
}
函数由函数名、参数、函数体和返回值4部分组成。
函数名是调用函数时引用的名称。
函数参数位于括号内,可以是常量、变量或表达式,甚至是函数,也可以不需要参数。
函数体放在花括号{}
内,{}
中的语句是函数被调用时执行的语句。
函数执行完后可以有返回值,也可以没有返回值。可以返回一个值,也可以是数组,对象等。有返回值使用return语句,无返回值则省略return语句。
2.1.2 声明函数表达式
- 把函数表达式赋值给一个变量,格式如下:
var 变量名 = function 函数名(参数1, 参数2, ...) {// 函数体语句块;return 返回值;
}
变量名将作为函数名,这种方法的本质是把函数当作数据赋值给变量。
- 网页事件直接调用函数表达式
// 网页加载时触发
window.onload = function 函数名(参数1, 参数2, ...) {// 函数体语句块;return 返回值;
}
2.2 函数的调用
学会如何调用已定义的函数,传递参数并接收返回值。
函数名(传递给函数的参数1, 传递给函数的参数2,...);
// 例如:
const result = greet('John');
console.log(result);
3. 理解函数参数和返回值及作用域
3.1 函数参数
函数括号里的即为参数,函数定义时为形式参数,函数调用时为实际参数。可以在声明函数时设置参数的默认值,这样如果调用函数未传参时会使用默认值。
3.2 函数返回值
- 理解函数返回值的概念,知道如何使用 return 语句从函数中返回一个值。
- 明白如果函数没有显式的 return 语句,默认返回 undefined。
如下案例返回了值。
function calculateArea(radius) {return Math.PI * radius * radius;
}
const area = calculateArea(5);
console.log(area);
3.3 函数的作用域
变量的作用域是指可以访问该变量的代码区域。在JavaScript中,根据变量的作用范围,可分为全局变量和局部变量。
全局变量是指在整个HTML文档都可以使用的变量,通常指在函数体外定义的变量。在函数外部使用var、let或不使用var、let定义的变量都是全局变量。在函数内部不使用var、let定义的变量也是全局变量。
局部变量是只能在局部范围内使用的变量,通常是在函数体内定义的变量,因此只在该函数体内有效,其他函数无法访问。只有在函数内使用var、let定义的变量才是局部变量。
4. 函数高阶用法。
4.1 回调函数
回调函数,即把一个函数作为参数传递给另一个函数,在合适的时候调用。
function doSomething(callback) {console.log('Doing something...');callback();
}
function printMessage() {console.log('Message printed.');
}
doSomething(printMessage);
4.2 闭包函数
闭包是指有权访问另一个函数作用域中的变量的函数。
function outerFunction() {const outerVariable = 'I am from outer function';function innerFunction() {console.log(outerVariable);}return innerFunction;
}
const closure = outerFunction();
closure();