


Explication détaillée des paramètres par défaut des fonctions de traitement dans les environnements ES5 et ES6
Cette fois, je vais vous apporter une explication détaillée des étapes pour les paramètres par défaut des fonctions de traitement dans les environnements ES5 et ES6. Quelles sont les précautions concernant les paramètres par défaut des fonctions de traitement dans les environnements ES5 et ES6. Ce qui suit est un cas pratique. Jetons un coup d'œil.
La valeur par défaut de la fonction est quelque chose qui améliore considérablement la robustesse (c'est-à-dire qu'elle rend le programme plus robuste)
Description MDN des paramètres par défaut de la fonction : les paramètres par défaut de la fonction ne permettent de transmettre aucune valeur ou un élément non défini Utilisez les paramètres par défaut lors de la saisie.
ES5
Utiliser logique ou || pour implémenter
Comme nous le savons tous, dans la version ES5, il n'existe pas de méthode directe pour gérer la valeur par défaut de la fonction
, nous ne pouvons donc améliorer la fonction de la fonction que nous-mêmes, ce qui se fait généralement comme ceci :
function doSomething (name, age) { name = name || 'default name' age = age || 18 console.log(name, age) }
Nous le ferons. Les deux paramètres de la fonction, nom et âge, sont traités avec des valeurs par défaut. Sinon, utilise la valeur par défaut .
Après avoir exécuté la fonction, il ne semble y avoir rien de mal :
doSomething() // default name, 18 doSomething('Niko') // Niko , 18 doSomething(, 12) // default name, 12
Cependant, lorsque nous exécutons un tel code, nous obtiendrons des résultats inattendus :
doSomething('Niko', 0) // Niko, 18
On peut constater que pour le paramètre 0, notre méthode d'implémentation de paramètre par défaut ci-dessus est problématique
Tout comme les quatre expressions ci-dessous, elles afficheront toutes des résultats erronés, ce qui est évident. ci-dessus la définition MDN des paramètres par défaut de la fonction :
console.log(0 || 'wrong') console.log('' || 'wrong') console.log(null || 'wrong') console.log(false || 'wrong')
Posture correcte
Donc, la valeur par défaut correcte dans le traitement de la valeur ES5 devrait être comme ceci :
function doSomething (name, age) { if (name === undefined) { name = 'default name' } if (age === undefined) { age = 18 } console.log(name, age) }
Utilisez l' opérateur ternaire pour simplifier l'opération
ou nous pouvons le raccourcir à la forme d'opérateur ternaire :
function doSomething (name, age) { name = name === undefined ? 'default name' : name age = age === undefined ? 18 : age console.log(name, age) }
Utiliser la fonction pour l'encapsulation
Mais si on écrit une fonction à chaque fois, on doit faire ces opérations à plusieurs reprises
C'est trop gênant, nous faisons donc une simple encapsulation de cette logique :
function defaultValue (val, defaultVal) { return val === undefined ? defaultVal : val } function doSomething (name, age) { name = defaultValue(name, 'default name') age = defaultValue(age , 18) console.log(name, age) }
De cette façon, la logique des paramètres par défaut de la fonction est implémentée de manière très concise dans ES5
une chose
Concernant la méthode d'implémentation de la fonction defaultValue ci-dessus, après avoir raisonnablement utilisé les avantages des langages faiblement typés
nous pouvons utiliser cette méthode pour sauvegarder le fonctionnement de l'opérateur ternaire :
function defaultValue () { return arguments[+(arguments[0] === undefined)] }
Nous savons que les arguments représentent tous les paramètres réels de la fonction
Nous utilisons des arguments[0] pour obtenir le premier paramètre réel, puis effectuons une comparaison congruente avec undefined
Mettez l'expression dans le couche externe Le résultat est converti en nombre, puis cette valeur est utilisée comme indice pour obtenir le paramètre correspondant dans les arguments.
Comme il est converti à partir d'une valeur booléenne, il n'y a que deux options : 0 et 1.
réalise également la fonction de l'opérateur ternaire ci-dessus.
ES6
La valeur par défaut de la fonction dans la version ES6 est essentiellement la routine que nous avons implémentée ci-dessus
Mais parce que Il est natif, il y aura donc une nouvelle syntaxe correspondante, qui pourra être utilisée de manière plus concise :
function doSomething (name = 'default name', age = 18) { console.log(name, age) }
ES6 fournit une nouvelle syntaxe qui nous permet d'écrire = [defaultValue] directement après les paramètres de déclaration de la fonction. Le formulaire est utilisé pour définir la valeur par défaut d’un certain paramètre.
L'utilisation de cette méthode élimine directement le besoin de vérifier la valeur par défaut à l'intérieur de la fonction, permettant à la fonction de se concentrer sur ce qu'elle doit faire.
Comment lever une exception pour certains paramètres obligatoires
Cette nouvelle syntaxe d'ES6 peut nous faire une très bonne erreur rappel pour un paramètre obligatoire :
function requireParams () { throw new Error('required params') } function doSomething (name = requireParams(), age = 18) { // do something }
Si le paramètre name n'est pas défini, la règle de valeur par défaut sera déclenchée
puis la fonction requireParams est appelée, et on lance directement dans la fonction Une erreur
Traitement des valeurs par défaut des paramètres de structure complexes
Le traitement ci-dessus concerne uniquement les données de type de base simples, mais si nous avons une fonction comme ce qui suit :
function init ({id, value}) {} init({ id: 'tagId', value: 1 })
如果在ES5环境下,针对这种参数的默认值处理将会变得无比复杂
首先要判断这一个参数是否存在,然后在判断参数中的所有key是否存在
而在ES6中,可以这样来做:
function init ({ id = 'defaultId', value = 1 } = {}) { console.log(id, value) } init()
首先在解构函数的后边添加默认值= {},然后针对每一项参数添加默认值,很简洁的就实现了我们的需求。
ES5版本的polyfill代码在仓库中的位置:defaultValue
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Le langage Go propose deux technologies de création de fonctions dynamiques : la fermeture et la réflexion. les fermetures permettent d'accéder aux variables dans la portée de la fermeture, et la réflexion peut créer de nouvelles fonctions à l'aide de la fonction FuncOf. Ces technologies sont utiles pour personnaliser les routeurs HTTP, mettre en œuvre des systèmes hautement personnalisables et créer des composants enfichables.

Dans la dénomination des fonctions C++, il est crucial de prendre en compte l’ordre des paramètres pour améliorer la lisibilité, réduire les erreurs et faciliter la refactorisation. Les conventions courantes d'ordre des paramètres incluent : action-objet, objet-action, signification sémantique et conformité de la bibliothèque standard. L'ordre optimal dépend de l'objectif de la fonction, des types de paramètres, de la confusion potentielle et des conventions du langage.

La clé pour écrire des fonctions Java efficaces et maintenables est la suivante : restez simple. Utilisez un nom significatif. Gérer des situations particulières. Utilisez une visibilité appropriée.

1. La fonction SOMME permet de sommer les nombres d'une colonne ou d'un groupe de cellules, par exemple : =SOMME(A1:J10). 2. La fonction MOYENNE permet de calculer la moyenne des nombres dans une colonne ou un groupe de cellules, par exemple : =AVERAGE(A1:A10). 3. Fonction COUNT, utilisée pour compter le nombre de nombres ou de texte dans une colonne ou un groupe de cellules, par exemple : =COUNT(A1:A10) 4. Fonction IF, utilisée pour effectuer des jugements logiques basés sur des conditions spécifiées et renvoyer le résultat correspondant.

Les avantages des paramètres par défaut dans les fonctions C++ incluent la simplification des appels, l’amélioration de la lisibilité et l’évitement des erreurs. Les inconvénients sont une flexibilité limitée et des restrictions de dénomination. Les avantages des paramètres variadiques incluent une flexibilité illimitée et une liaison dynamique. Les inconvénients incluent une plus grande complexité, des conversions de types implicites et des difficultés de débogage.

Les avantages des fonctions renvoyant des types référence en C++ incluent : Améliorations des performances : le passage par référence évite la copie d'objets, économisant ainsi de la mémoire et du temps. Modification directe : L'appelant peut modifier directement l'objet de référence renvoyé sans le réaffecter. Simplicité du code : le passage par référence simplifie le code et ne nécessite aucune opération d'affectation supplémentaire.

La différence entre les fonctions PHP personnalisées et les fonctions prédéfinies est la suivante : Portée : les fonctions personnalisées sont limitées à la portée de leur définition, tandis que les fonctions prédéfinies sont accessibles tout au long du script. Comment définir : les fonctions personnalisées sont définies à l'aide du mot-clé function, tandis que les fonctions prédéfinies sont définies par le noyau PHP. Passage de paramètres : les fonctions personnalisées reçoivent des paramètres, tandis que les fonctions prédéfinies peuvent ne pas nécessiter de paramètres. Extensibilité : des fonctions personnalisées peuvent être créées selon les besoins, tandis que les fonctions prédéfinies sont intégrées et ne peuvent pas être modifiées.

Les paramètres de référence dans les fonctions C++ (essentiellement les alias de variable, la modification de la référence modifie la variable d'origine) et les paramètres de pointeur (stockage de l'adresse mémoire de la variable d'origine, modification de la variable en déréférençant le pointeur) ont des utilisations différentes lors du passage et de la modification de variables. Les paramètres de référence sont souvent utilisés pour modifier les variables d'origine (en particulier les grandes structures) afin d'éviter une surcharge de copie lorsqu'elles sont transmises aux constructeurs ou aux opérateurs d'affectation. Les paramètres de pointeur sont utilisés pour pointer de manière flexible vers des emplacements de mémoire, implémenter des structures de données dynamiques ou transmettre des pointeurs nuls pour représenter des paramètres facultatifs.
