Table des matières
Fonction flèche
Règles de grammaire
Règles d'abréviation
Applications communes
map La méthode
filter
reduce
箭头函数中的this使用
concat
this的查找规则
Maison interface Web js tutoriel Comment utiliser les fonctions fléchées en JavaScript

Comment utiliser les fonctions fléchées en JavaScript

Oct 02, 2022 am 08:00 AM
javascript

Cet article vous apporte des connaissances pertinentes sur le Tutoriel vidéo JavaScript. Il présente principalement des problèmes liés aux fonctions de flèche, notamment les règles de grammaire, les règles d'abréviation, les applications courantes, etc.

Comment utiliser les fonctions fléchées en JavaScript

【Recommandations associées : Tutoriel vidéo JavaScript, front-end web

Fonction flèche

Dans ES6, il existe une nouvelle abréviation pour les fonctions ----fonction flèche L'émergence de la fonction flèche. non seulement simplifie Une grande quantité de code rend également le code plus élégant et résout également le problème de ce pointage. Expliquons en détail comment jouer avec les fonctions fléchées.

Règles de grammaire

  • Méthode précédente

function foo1(){}var foo2 = function(name,age){
	console.log("函数体代码",this,arguments);
  console.log(name,age);}
Copier après la connexion
  • Écriture complète de la fonction flèche

var foo3 = (name,age) => {
	console.log("箭头函数的函数体")
  console.log(name,age);}
Copier après la connexion
  • La fonction flèche traverse le tableau

  • Comment j'écrivais
var names = ["abc","cba","nba"];names.forEach(function(item)){
	console.log(item);})
Copier après la connexion
  • Comment écrire la fonction flèche
names.forEach((item,idx,arr)=>{
  console.log(item,idx,arr);
	} )
Copier après la connexion

Comment utiliser les fonctions fléchées en JavaScript

setTimeout(()=>{
	console.log("setTimeout");},3000)
Copier après la connexion

Règles d'abréviation

  • Si la fonction flèche n'a qu'une seule fonction, alors () peut être omis

name.forEach(item =>{console.log(item);}
Copier après la connexion
  • filtre () avec la fonction flèche, il peut filtrer efficacement les nombres qui remplissent les conditions.
var newNums = nus.filter(item =>{
  return item % 2;})
Copier après la connexion
  • S'il n'y a qu'une seule ligne de code d'exécution dans le corps de la fonction, alors {} peut être omis.

  • Et la valeur de retour de cette ligne de code sera la valeur de retour de l'ensemble fonction, il n'est donc pas nécessaire d'ajouter return
names.forEach(item => console.log(item));
Copier après la connexion
  • la fonctionfilter() est exécutée sur une seule ligne, vous pouvez directement omettre {}
varans = worker.filter( item=>item % 2 )
Copier après la connexion
  • Si la valeur de retour par défaut est un objet, alors cet objet doit ajouter ()

Remarque : dans React Redux est souvent utilisé.
Nous constaterons que lorsque la fonction flèche rencontre simultanément les accolades de l'exécuteur et les accolades de l'objet, la fonction flèche ne peut pas distinguer

var arrFn = () =>{} //此大括号是执行体
Copier après la connexion
var arrFn = () =>{ name : "why"}// 此大括号是对象
Copier après la connexion

Donc, afin de distinguer l'exécuteur, vous devez ajouter () à l'objet

var arrFn = () =>({ name : "why"})
Copier après la connexion

Applications communes

map La méthode

map() est définie dans le tableau de JS. Elle renvoie un nouveau tableau. Les éléments du tableau sont les valeurs traitées par le tableau d'origine après l'appel du. fonction.
À noter : la fonction

  • map() ne détecte pas les tableaux vides.
  • La fonction map() ne modifie pas le tableau d'origine, elle forme un nouveau tableau.
  • array.map(function(currentValue, index, arr), thisIndex)array.map(function(currentValue, index, arr), thisIndex)

参数说明:

  • function(currentValue,index,arr):必填
    • 数组中的每个元素都会执行这个函数。
    • currentValue:必填,表示当前元素的值。
    • index:可选,当前元素的索引也就是第几个数组元素。
    • arr:可选,当前元素属于的数组对象。
  • thisValue:可选,对象作为该执行回调时使用,传递给函数,用作“this”的值。

例1:对原数组进行平方后赋值给新数组。

let arry = [1,2,3,4];let newArray = array.map((item)=>{
  return item*item;})
Copier après la connexion

也可以化简成下面一行代码。

let newArray = array.map(item =>item * item)
Copier après la connexion

例2:对原数组的偶数进行平方后赋值给新数组。

filter

filter() 用于对数组进行过滤。

  • 原理是它创建一个新数组,新数组的元素是通过检查指定数组中符合条件的所有元素。
  • filter把传入的函数依次作用在每一个元素,然后根据返回值是true还是false决定保留还是丢弃元素。
  • Array.filter(function(currentValue, indedx, arr), thisValue)
Description du paramètre :

    function(currentValue, index, arr) : obligatoire
    • Chaque élément du tableau Chaque élément exécutera cette fonction.
    • currentValue : obligatoire, indiquant la valeur de l'élément actuel.
    • index : Facultatif, l'index de l'élément actuel est l'élément du tableau.
    • arr : Facultatif, l'objet tableau auquel appartient l'élément actuel.
  • thisValue : Facultatif, l'objet est utilisé comme rappel d'exécution, passé à la fonction et utilisé comme valeur de "this".
Exemple 1 : Mettez au carré le tableau d'origine et attribuez-le au nouveau tableau.

let newArray = array.filter(item=>item%2===0).map(item =>item * item)
Copier après la connexion
peut également être simplifié dans la ligne de code suivante.

  let array = [1, 2, 3, 4];
  let newArray = array.filter((item,idx)=>idx%2===0).map(item =>item * item)
Copier après la connexion
Exemple 2 : Mettez au carré les nombres pairs du tableau d'origine et attribuez-les au nouveau tableau.

filter🎜🎜🎜filter() est utilisé pour filtrer les tableaux. 🎜🎜🎜🎜Le principe est qu'il crée un nouveau tableau, et les éléments du nouveau tableau sont en vérifiant tous les éléments du tableau spécifié qui remplissent les conditions. 🎜🎜filter applique tour à tour la fonction transmise à chaque élément, puis décide de conserver ou de supprimer l'élément selon que la valeur de retour est true ou false . 🎜🎜Array.filter(function(currentValue, index, arr), thisValue)🎜🎜🎜Description du paramètre : 🎜🎜🎜function(currentValue, index, arr) : obligatoire 🎜🎜Chaque élément du tableau Chaque élément exécutera cette fonction. 🎜🎜currentValue : obligatoire, indiquant la valeur de l'élément actuel. 🎜🎜index : Facultatif, l'index de l'élément actuel est l'élément du tableau. 🎜🎜arr : Facultatif, l'objet tableau auquel appartient l'élément actuel. 🎜🎜🎜🎜thisValue : Facultatif, l'objet est utilisé comme rappel d'exécution, passé à la fonction et utilisé comme valeur de "this". 🎜🎜
var newArray = array.filter((item,idx,arr)=>arr.indexOf(item) === idx)
Copier après la connexion
🎜Exemple 3 : Mettez au carré les indices pairs du tableau d'origine et attribuez-les au nouveau tableau. 🎜
var ans = arr.filter(item=>item%2).map(item=>item*item).reduce((x,y)=>x+y,0);
Copier après la connexion
Copier après la connexion
🎜Exemple 4 : utilisez intelligemment le paramètre arr pour dédupliquer le tableau.🎜
function foo(){
	console.log("foo",this);}foo()//windowfoo.apply("aaa")//aaa
Copier après la connexion
Copier après la connexion
🎜Exemple 2 : trouvez la somme cumulée après avoir élevé au carré les nombres pairs du tableau d'origine. 🎜

reduce

  • 用于遍历数组,可以设置初始值,大大增强了代码的可读性,同时还有一个参数可以做累计计算。
  • array.reduce((pre, cur, index, arr),init)

参数说明:

  • function((pre, cur, index, arr)):必填
    • pre: 必填,积累值
    • cur: 必填。当前元素。
    • index: 可选。当前下标。
    • arr: 可选。当前数组。
  • init: 可选。传递给函数的初始值,但传入参数为两个时,init 是累计值 pre的初始值。

如果reduce的参数只有一个,那么累计值的初始值是数组的第一个值。

如果reduce的参数有两个,那么积累值初始值就是设置好的 参数init初始值。

在每一次迭代中,返回的值都作为下一次迭代的 pre累计值。

var ans = arr.filter(item=>item%2).map(item=>item*item).reduce((x,y)=>x+y,0);
Copier après la connexion
Copier après la connexion

箭头函数中的this使用

普通函数中是有this的标识符

function foo(){
	console.log("foo",this);}foo()//windowfoo.apply("aaa")//aaa
Copier après la connexion
Copier après la connexion

箭头函数中,压根没有this。

var bar = ()=>{console.log("bar",this)}bar()//windowbar.apply("AAA")//window
Copier après la connexion

concat

concat()方法是用于连接两个或多个数组。

var arr  = [1, 2, 3, 4];
var arr2 = [7, 8, 9, 10];
var ans = [].concat(arr,arr2);
console.log(ans);//输出:(8) [1, 2, 3, 4, 7, 8, 9, 10]
Copier après la connexion

this的查找规则

因为箭头函数中没有this的标识符,所以当箭头函数内部开始调用this时。

JavaScript引擎就从作用域由里到外的找含有this指向的作用域。

var obj ={
	name:"obj",
  foo:function(){
    var bar = ()=>{
      console.log("bar",this);
    }
    return bar;
  }}
Copier après la connexion
  • 第一层 bar箭头函数:没有。
  • 第二层 function 函数:指向obj。

所以例子中的 this 指向obj。

var obj ={
	name:"obj",
  foo:()=>{
  	var bar =()=>{
      console.log("bar:",this);
    }
    return bar;
  }}
Copier après la connexion
  • 第一层 bar箭头函数:没有。
  • 第二层 foo箭头函数:没有。
  • 第三层 全局作用域:指向window。

所以例子中的 this 指向window。

模拟网络发送请求

  • 封装 request 工具函数
function request(url,callback){
  	var res = ["abc","cba","nba"];
    callback(res);}
Copier après la connexion
  • 实际操作的位置
    • 早期的写法

因为此时传入 request 的function ,就是 request 定义中的 callback()。
所以 function 中的参数就是 request 定义中的 res 数组,然后赋值给了 此对象中names
但因为 function 是个回调函数的this 的指向是 window,所以需要在外层的函数中,规定一个_this指向当前对象。

 var _this = this;
Copier après la connexion

然后 将获取过来的 res 数组 赋值给 _this 中的names

  _this.name = [].concat(ans);
Copier après la connexion
var obj = {
	names:[],
  network:function(){
    var _this = this;
    request("/names",function(ans){
    _this.name = [].concat(ans);
  })}
Copier après la connexion
  • 箭头函数的写法

因为箭头函数本身是没有 this的,js引擎会由内往外的找 this的指向。
发现 外层的 函数 this指向obj,于是 this 就指向了 obj。

var obj = {
	names:[],
  network:function(){
    request("/names",(ans)=>{
    this.name = [].concat(ans);
  })}
Copier après la connexion

【相关推荐:javascript视频教程web前端

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Comment utiliser insertBefore en javascript Comment utiliser insertBefore en javascript Nov 24, 2023 am 11:56 AM

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace JavaScript et WebSocket : créer un système de traitement d'images en temps réel efficace Dec 17, 2023 am 08:41 AM

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.

See all articles