# 使用函数创建模块化代码
# 课程目标
为了掌握函数的基础知识,本模块介绍了以下内容:
- 如何编写基本函数。
- 什么是参数以及如何使用它们。
- 如何从函数返回值。
- 如何使用匿名函数,箭头函数。
- 如何使用函数表达式,回调函数
# 函数基础
函数是要创建的任何应用程序的构建基块。 利用函数,可以创建命名的、可重用的代码段,以帮助使其更易于阅读和维护
请阅读下面的材料掌握函数的基础知识
- 函数 - JavaScript 现代教程 (opens new window)
- JavaScript 函数 - W3School (opens new window)
- 函数-可复用代码块 - MDN (opens new window)
# 编码
- 声明一个叫做 showMessage() 的函数并返回 "您好,陌生人"。将 showMessage() 函数返回的值输出到控制台中。
/*
* QUIZ REQUIREMENTS
* - Your code should have a `showMessage()` function
* - Your `laugh()` function should return the correct output
* - Your code should print `\"hello,stranger!\"` by calling the `showMessage()` function inside `console.log()`
* - BE CAREFUL ABOUT THE PUNCTUATION AND THE EXACT WORDS TO BE PRINTED.
*/
// your code goes here
console.log(/* 调用showMessage函数 */);
- 基于上一个任务,给 showMessage 函数传入一个参数 name ,函数返回一个字符串,其中显示“您好”和提供该输入的人员的姓名,将 showMessage() 函数返回的值输出到网页中
<script>
// your code goes here document.write(/* 调用showMessage函数 */);
</script>
# 函数表达式&回调函数
# 阅读
- 函数表达式 - JavaScript 现代教程 (opens new window)
- 箭头函数 (opens new window)
- 详解 JavaScript 回调函数 (opens new window)
- 从零起步,真正理解 Javascript 回调函数 (opens new window)
# 编码
- 使用函数表达式重写上面的任务,写一个匿名函数表达式,并且将函数存储在叫做“showMessage”的变量中.
- 使用 setTimout 与 匿名函数在网页中显示一条打招呼的消息,内容还是为
“您好”和提供该输入的人员的姓名
,这条消息延迟 1 秒后再显示。 - 使用回调函数,实现一个体温打卡程序。
用例说明
进入页面,首先弹出系统提示框,要求输入您的体温
体温在 36℃ - 38℃ ,表示体温正常,打卡成功。页面中显示“体温正常,打卡成功!
否则,体温异常,“体温异常,打卡失败!
步骤
- 写一个函数表达式,并且将函数存储在叫做“ success ”的变量中,表示打卡成功执行的函数,在页面中显示
“体温正常,打卡成功!
- 写一个函数表达式,并且将函数存储在叫做“ fail ”的变量中,表示打卡失败执行的函数,在页面中显示
“体温异常,打卡失败!
- 您需要封装一个 temperatureBodyDetection 函数,传入上面封装好的两个异步回调函数,success 和 fail
任务伪代码如下
function temperatureBodyDetection(success,fail){
if(体温符合标准)
success() /*执行成功函数*/
else
fail() /*执行失败函数*/
}
var success = /* finish the function expression */
var fail = /* finish the function expression */
temperatureBodyDetection(success,fail) /**调用打卡函数**/
# 自测问题
- 下面的哪个变量是在全局作用域中定义的:a、b、c 或 d?
var a = 1;
function x() {
var b = 2;
function y() {
var c = 3;
function z() {
var d = 4;
}
z();
}
y();
}
x();
- 下面这段代码返回的是什么?
function sleep() {
console.log("I'm sleepy!");
return "我睡着了";
return "我在打呼";
}
sleep();
3.不用将代码粘贴到控制台中,能判断出这段代码的输出内容吗?
var x = 1;
function addTwo() {
x = x + 2;
}
addTwo();
x = x + 1;
console.log(x);
# 进阶任务
如果你很快就完成上面的任务,可以去 LeetCode 上去多进行一些练习。
# 提交
把你今天觉得做得最好的代码放在 Github 后进行提交。
# 总结
依然把今天的学习用时,收获,问题进行记录。
← 数据类型和变量 “如果”可以“重来” →