当前位置:首页 > JavaScript

函数js实现

2026-02-01 23:19:58JavaScript

函数的基本语法

在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);
}

高阶函数

接受其他函数作为参数或返回函数的函数:

函数js实现

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;
}

方法定义

在对象中定义的函数称为方法:

函数js实现

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);
});

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

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现防洪

js实现防洪

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

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…