2k 2 分钟

# 什么是回调?

「简单说」:回调是一个要在另一个函数执行完毕后执行的函数,因此称为回调。

「复杂的说」:在 Javascript 中,函数是一个对象。因此,函数可以将一个函数作为参数,并且可以由其他函数返回。这样的函数我们一般称为高阶函数 「higher-order functions」。任何被作为参数传递的函数都可以称为回调函数。

百说不如一练,让我们用几个例子来进一步分析这个问题。

335 1 分钟

考虑一段如下所示的代码: $('body').on('click', function(e){});我知道有一种方法可以从 e.target 获取元素类型,即 e.target.nodeName ,但我如何才能获取该元素的 id 从那?如果做不到,是否有另一种方法来获取被点击元素的 id? 最佳答案 您可以使用 e.target.id 。 e.target 表示 DOM 对象,您可以访问它的所有属性和方法。 $('body').on('click', function(e){...
5.3k 5 分钟

Async/Await 在 NodeJS 7.6 中引入,目前所有的现代浏览器中均能支持使用。相信自 2017 年以来,它已成为 JS 最大的补充。如果你不相信的话,那么有很多理由能向你说明为什么应该立即使用它而不是停滞不前。 # Async/Await Async/Await 简单介绍: Async/Await 是一种编写异步代码的新方法。异步代码之前的替代方法是 callback 和 promises。 Async/Await 实际上是在 promises 之上构建的语法糖。它不能与普通回调和 node 回调一起使用。 Async/Await 和 promises...
1.5k 1 分钟

# JavaScript 状态模式

在前端开发中,状态管理是一个非常重要的问题。

随着应用程序的复杂度不断增加,状态管理变得越来越困难。

JavaScript 状态模式是一种优雅的解决方案,可以帮助我们更好地管理状态。

本文将介绍 JavaScript 状态模式的基本概念和使用方法,并通过一个实际的例子来说明如何使用状态模式来管理状态。

1.3k 1 分钟

箭头函数是 ES6 中引入的新特性,它使我们在编写函数表达式的语法更加简洁。虽然普通函数和箭头函数的工作方式类似,但是它们之间还是存在一些差异。

# 语法

// ES5
var add = function(x, y) {
  return x + y;
};
// ES6
let add = (x, y) => { return x + y };

1.6k 1 分钟

# map()

map() 方法返回一个新数组,数组中的元素为原数组元素调用函数处理后的值。

接收参数:一个具有三个参数的回调函数。

  • current value:数组当前元素
  • index:数组当前元素的索引
  • arr:原数组本身

返回值:返回一个新数组,数组元素由回调函数返回的结果组成。

let list = [1, 2, 3, 4]
let res = list.map(item => item * 2)
console.log(res) // [2, 4, 6, 8]

4.9k 4 分钟

# 数组转对象

通用方法

const arr = [['name', 'Alice'], ['age', 30]]
const obj = Object.fromEntries(arr)

将数组转换为对象最快的方法

var person = ['arrary', 'number', 'string']
console.log({...person}) // {0: "arrary", 1: "number", 2: "string"}

2k 2 分钟

# 使用对象代替条件 if 判断

在某些条件下,我们需要根据变量的值来调用不同的函数或者赋值。一般我们遇到这种情况可能会写大量的 if 条件判断块,但是大量的 if 代码不利于代码阅读和理解,有些时候我们可以使用对象来解决此问题。

964 1 分钟

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。 下面为大家介绍一些常用的解构赋值操作。 # 1. 变量交换 ES6 之前我们变量交换的方式可能如下: var a = 1;var b = 2;var temp;temp = a;a = b;b = temp;在上述例子中 temp 其实是一个临时变量用来存储 a 的值,最后我们把 temp 的值赋值给 b 。 使用解构运算则非常简单: let a = 1;let b = 2;[a, b] = [b, a];console.log(a); // 2console.log(b); // 1上例子中, [a, b] =...
5.1k 5 分钟

# Prism Supported languages This is the list of all 276 languages currently supported by Prism, with their corresponding alias, to use in place of xxxx in the language-xxxx (or lang-xxxx ) class: Markup - markup, html, xml, svg, mathml, ssml, atom, rss GLSL - glsl PHP Extras - php-extras CSS -...