Cet article vous apporte une introduction détaillée aux fonctions es6 (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Valeurs par défaut des paramètres de fonction
Nous savons tous que déclarer une fonction peut définir des paramètres formels, mais avez-vous déjà pensé que les paramètres formels peuvent également définir directement des valeurs par défaut ? comment l'écrire ensuite
Code
function f(x,y=2) { return x+y } console.log(f(2)) // 4
Le petit exemple ci-dessus définit simplement une valeur par défaut de 2 pour y, puis lorsque nous utilisons cette fonction, nous transmettons uniquement le paramètre 2 de x, donc nous obtiendrons 4, et si nous passons 1 comme paramètre à y ? Quel genre de résultat obtiendrons-nous ? Si nous continuons à regarder l'exemple ci-dessous
function f(x,y=2) { return x+y } console.log(f(2,1)) // 3
nous obtiendrons 3, car si vous transmettez les paramètres réels, la valeur par défaut sera remplacée. à expérimenter par eux-mêmes ! ! !
function f(x,x,y=2) { return x+y } console.log(f(2,2, 1)) // 报错
L'exemple ci-dessus signalera une erreur car nous ne pouvons pas définir les mêmes paramètres
let x = 3 function f(x,y=x) { return x+y } console.log(f(2)) var x = 3 function f(x,y=x) { return x+y } console.log(f(2)) function f(x,y=x) { console.log(x,y) // 2 2 var x = 3 console.log(x,y) // 3 2 return x+y } console.log(f(2)) // 5
Les trois exemples ci-dessus sont des exemples de portée des paramètres de fonction. Jetons un coup d'œil au premier. 1 Dans le deuxième exemple, la valeur par défaut de la fonction aura sa propre portée distincte, donc cela ne fonctionnera pas si nous déclarons le x modifié à l'extérieur. Mais dans le troisième exemple, nous modifions x à l'intérieur de la fonction. à notre La valeur imprimée est visible. Avant la déclaration, nos x et y étaient tous deux 2. Il n'y a pas de promotion variable ici, x devient 3 et y reste inchangé, nous obtenons donc 5
paramètre de repos官方注解:ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中
function f(...x) { console.log(x) // [1,2,3] } f(1,2,3)
function f(arr,y,...x) { console.log(x) } function f(arr,...x,y) { }
Comment utiliser le repos en mode strict ?
从Es5开始函数内已经可以定义严格模式了,但Es6规定函数参数默认值定义严格模式会报错,但也要看严格模式定义在局部还是全局
Strict mode
function fn(a=5) { 'use strict'; console.log(a) } fn()
Alors comment éviter de telles erreurs ? Code
'use strict'; function fn2(a=5) { console.log(a) } fn2() function fn() { 'use strict'; return function (a=5) { console.log(5) } } fn()() // 5
官方注解: 函数的name属性,返回该函数的函数名 使用方式 函数名.name
function a() { } console.log(a.name) // a function b() { } console.log(b.name) // a
let fn = a => a console.log(fn(10)) // 10 // 对比 let fn1 = function (a) { return a } console.log(fn1(10)) //10 let fn2 = (a,b) => a+b console.log(fn2(1,2)) // 对比 let fn21 = function (a,b) { return a+b } console.log(fn2(1,2))
通俗的解释:就是在函数中最后一步调用函数
let fn = () => { console.log(123) return () => 5 } console.log(fn()()) // 123 5
let fn = (a,b) => { if(a===b) return b console.log(1) return fn(a+1, b) } console.log(fn(1,5))
La virgule finale du paramètre de fonction
Dans l'exemple ci-dessus, nous avons ajouté une virgule après le paramètre. Après avoir exécuté le résultat, nous avons constaté qu'il était. peut fonctionner normalement, mais je n'obtiendrai pas d'erreur dans l'environnement es6. J'ai essayé es5 et aucune erreur n'a été signalée. Vous pouvez l'essayer à nouveau. L'extension de la fonctionEs7中允许函数形参最后一个带有逗号,以前都是不允许带有逗号的 let fn = (a,) => { console.log(a) } fn(1)
se termine ici. à apprendre sont les fonctions fléchées et le transfert de valeur des paramètres de repos, ainsi que les fonctions en mode strict Le fonctionnement de
Cet article est terminé ici Pour un contenu plus passionnant, vous pouvez faire attention à. la rubrique
Vidéo du didacticiel JavaScript du site PHP chinois !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!