Z
ZHANK

函数基础

学会定义函数、参数、返回值

函数基础

函数是 JavaScript 的一等公民,理解函数是成为 JS 高手的必经之路。

学完本章你将: 学会定义函数、传递参数、返回值。


函数声明

javascript
// 1. 函数声明(会提升)
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet("Alice")); // "Hello, Alice!"

// 函数声明会被提升到作用域顶部
sayHi(); // ✅ 可以在定义前调用
function sayHi() {
    console.log("Hi!");
}

函数表达式

javascript
// 2. 函数表达式(不会提升)
const greet = function(name) {
    return `Hello, ${name}!`;
};

// sayHi(); // ❌ ReferenceError:不能在定义前调用
const sayHi = function() {
    console.log("Hi!");
};

参数

javascript
// 基本参数
function add(a, b) {
    return a + b;
}
console.log(add(3, 5)); // 8

// 多传参数会被忽略
console.log(add(1, 2, 3, 4)); // 3

// 少传参数为 undefined
console.log(add(1)); // NaN(1 + undefined)

// 默认参数
function multiply(a, b = 1) {
    return a * b;
}
console.log(multiply(5));    // 5(b 默认 1)
console.log(multiply(5, 2)); // 10

返回值

javascript
// 单个返回值
function double(x) {
    return x * 2;
}

// 返回对象(注意不要换行)
function createUser(name, age) {
    return {        // { 必须和 return 在同一行
        name: name, // 可简写为 name,
        age: age,   // 可简写为 age,
    };
}

// 没有 return 返回 undefined
function noReturn() {
    console.log("done");
}
console.log(noReturn()); // undefined

arguments 对象

javascript
// 旧方式:获得所有参数
function sum() {
    let total = 0;
    for (let i = 0; i < arguments.length; i++) {
        total += arguments[i];
    }
    return total;
}
console.log(sum(1, 2, 3, 4)); // 10

// ⚠️ arguments 不是数组,不能直接用 map/filter
// 箭头函数没有 arguments