当前位置:首页 > 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实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…