journey
title 你的JavaScript函数冒险
section 基础
Function Syntax: 5: You
Calling Functions: 4: You
Parameters & Arguments: 5: You
section 高级概念
Return Values: 4: You
Default Parameters: 5: You
Function Composition: 4: You
section 现代JavaScript
Arrow Functions: 5: You
Anonymous Functions: 4: You
Higher-Order Functions: 5: You
flowchart TD
A["✏️ 定义函数"] --> B["? 打包代码"]
B --> C["?️ 给它命名"]
C --> D["? 需要时调用"]
D --> E["? 任意重用"]
F["? 好处"] --> F1["无代码重复"]
F --> F2["易于维护"]
F --> F3["组织清晰"]
F --> F4["测试更简单"]
style A fill:#e3f2fd
style E fill:#e8f5e8
style F fill:#fff3e0
flowchart LR
A["? 函数调用"] --> B["? 参数"]
B --> C["⚙️ 函数体"]
C --> D["? 结果"]
A1["displayGreeting('Alice')"] --> A
B1["name = 'Alice'"] --> B
C1["模板字面量\n\`Hello, \${name}!\`"] --> C
D1["'Hello, Alice!'"] --> D
E["? 参数类型"] --> E1["字符串"]
E --> E2["数字"]
E --> E3["布尔值"]
E --> E4["对象"]
E --> E5["函数"]
style A fill:#e3f2fd
style C fill:#e8f5e8
style D fill:#fff3e0
style E fill:#f3e5f5
flowchart TD
A["? 函数处理"] --> B{"return 语句?"}
B -->|是| C["? 返回值"]
B -->|否| D["? 返回 undefined"]
C --> E["? 存储在变量中"]
C --> F["? 在表达式中使用"]
C --> G["? 传递给函数"]
D --> H["⚠️ 通常没有用处"]
I["? 返回值的用途"] --> I1["计算结果"]
I --> I2["验证输入"]
I --> I3["转换数据"]
I --> I4["创建对象"]
style C fill:#e8f5e8
style D fill:#ffebee
style I fill:#e3f2fd
? 返回值检测:拿回结果
评估你对返回值的理解:
函数里 return 后的代码会怎样?
为什么返回值通常比只打印更好?
函数能返回不同类型的值(字符串、数字、布尔)吗?
pie title "常见返回值类型"
"字符串" : 30
"数字" : 25
"对象" : 20
"布尔值" : 15
"数组" : 10
setTimeout(() => {
console.log('3 seconds has elapsed');
}, 3000);
() 里放参数(这里空着),接箭头 =>,最后是花括号里的函数体。功能一样,语法更紧凑。
flowchart LR
A["? 函数风格"] --> B["传统"]
A --> C["箭头"]
A --> D["匿名"]
B --> B1["function name() {}"]
B --> B2["提升的"]
B --> B3["有名的"]
C --> C1["const name = () => {}"]
C --> C2["简洁语法"]
C --> C3["现代风格"]
D --> D1["function() {}"]
D --> D2["无名称"]
D --> D3["一次性使用"]
E["⏰ 何时使用"] --> E1["传统:可重用函数"]
E --> E2["箭头:简短回调"]
E --> E3["匿名:事件处理器"]
style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
style E fill:#e0f2f1
graph TD
A["? JavaScript 函数"] --> B["? 函数声明"]
A --> C["? 参数"]
A --> D["? 返回值"]
A --> E["? 现代语法"]
B --> B1["function name() {}"]
B --> B2["描述性命名"]
B --> B3["可重用代码块"]
C --> C1["输入数据"]
C --> C2["默认值"]
C --> C3["多个参数"]
D --> D1["return 语句"]
D --> D2["退出函数"]
D --> D3["传回数据"]
E --> E1["箭头函数: () =>"]
E --> E2["匿名函数"]
E --> E3["高阶函数"]
F["⚡ 关键优势"] --> F1["代码重用性"]
F --> F2["更好组织"]
F --> F3["更易测试"]
F --> F4["模块化设计"]
style A fill:#e3f2fd
style B fill:#e8f5e8
style C fill:#fff3e0
style D fill:#f3e5f5
style E fill:#e0f2f1
style F fill:#fce4ec