当前位置:首页 > 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实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…