函数js实现
函数的基本语法
在JavaScript中,函数可以通过function关键字定义,基本语法如下:
function functionName(parameters) {
// 函数体
return value; // 可选
}
函数的调用通过函数名加括号完成:
functionName(arguments);
匿名函数与函数表达式
函数可以作为表达式赋值给变量,这种函数称为匿名函数:
const myFunction = function(parameters) {
// 函数体
};
箭头函数
ES6引入了箭头函数,提供更简洁的语法:
const arrowFunction = (parameters) => {
// 函数体
};
// 单行箭头函数可省略大括号和return
const square = x => x * x;
默认参数
函数参数可以设置默认值:
function greet(name = 'Guest') {
console.log(`Hello, ${name}!`);
}
剩余参数
使用...语法可以收集多个参数为数组:
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
高阶函数
接受其他函数作为参数或返回函数的函数:

function multiplyBy(factor) {
return function(number) {
return number * factor;
};
}
const double = multiplyBy(2);
立即调用函数表达式(IIFE)
定义后立即执行的函数:
(function() {
console.log('立即执行');
})();
生成器函数
使用function*定义的函数,可以暂停执行:
function* idGenerator() {
let id = 0;
while(true) {
yield id++;
}
}
const gen = idGenerator();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
异步函数
使用async/await处理异步操作:
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
}
方法定义
在对象中定义的函数称为方法:

const person = {
name: 'Alice',
greet() {
console.log(`Hello, I'm ${this.name}`);
}
};
构造函数
用于创建对象的特殊函数:
function Person(name) {
this.name = name;
this.greet = function() {
console.log(`Hello, I'm ${this.name}`);
};
}
const alice = new Person('Alice');
递归函数
调用自身的函数:
function factorial(n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
闭包
函数可以记住并访问其词法作用域:
function createCounter() {
let count = 0;
return function() {
return ++count;
};
}
const counter = createCounter();
函数绑定
使用bind方法设置this值:
const obj = { value: 42 };
function getValue() {
return this.value;
}
const boundGetValue = getValue.bind(obj);
回调函数
作为参数传递给其他函数的函数:
function processData(data, callback) {
// 处理数据
callback(result);
}
processData(input, function(result) {
console.log(result);
});






