当前位置:首页 > JavaScript

js函数实现

2026-03-14 18:42:33JavaScript

函数声明与表达式

在JavaScript中,函数可以通过声明或表达式两种方式定义。函数声明会被提升(hoisted),允许在定义前调用;函数表达式则需先定义后调用。

// 函数声明
function greet(name) {
  return `Hello, ${name}!`;
}

// 函数表达式(匿名)
const greet = function(name) {
  return `Hello, ${name}!`;
};

// 箭头函数表达式(ES6)
const greet = (name) => `Hello, ${name}!`;

参数与返回值

函数可接收参数并返回结果。未显式返回时,默认返回 undefined。支持默认参数和剩余参数(Rest Parameters)。

// 默认参数
function multiply(a, b = 1) {
  return a * b;
}

// 剩余参数
function sum(...numbers) {
  return numbers.reduce((acc, num) => acc + num, 0);
}

高阶函数

函数可作为参数传递或作为返回值,这类函数称为高阶函数。常见于回调、事件处理等场景。

js函数实现

// 接收函数作为参数
function repeat(n, action) {
  for (let i = 0; i < n; i++) {
    action(i);
  }
}

// 返回函数
function createGreeting(greeting) {
  return function(name) {
    return `${greeting}, ${name}!`;
  };
}

闭包

函数与其词法环境的组合称为闭包。内层函数可访问外层函数的变量,即使外层函数已执行完毕。

function counter() {
  let count = 0;
  return function() {
    count++;
    return count;
  };
}
const increment = counter();
increment(); // 返回1

立即调用函数表达式(IIFE)

定义后立即执行的函数,用于创建独立作用域,避免变量污染全局。

js函数实现

(function() {
  console.log("IIFE executed");
})();

生成器函数(Generator)

通过 function* 定义,可暂停和恢复执行,返回一个迭代器对象。

function* idGenerator() {
  let id = 1;
  while (true) {
    yield id++;
  }
}
const gen = idGenerator();
gen.next().value; // 1

异步函数(Async/Await)

使用 async/await 简化异步操作,基于Promise实现。

async function fetchData(url) {
  const response = await fetch(url);
  return response.json();
}

方法绑定(this上下文)

通过 bindcallapply 显式绑定 this,箭头函数则继承外层 this

const person = {
  name: "Alice",
  greet: function() {
    console.log(`Hi, ${this.name}`);
  }
};
setTimeout(person.greet.bind(person), 1000);

标签: 函数js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…