Table des matières
1. Affectation de variable
2. Affectation de la valeur par défaut
3. Attributs des objets
4. Fonction flèche
5. Valeur de retour implicite
6. Valeurs des paramètres par défaut
7. Chaîne de modèle
8. Affectation de déstructuration
9. Opérateur d'expansion
10 Paramètres obligatoires
11. Array.find
12 Objet [clé]
13. Opérateurs double-bit
Maison interface Web js tutoriel Conseils abrégés que les développeurs JavaScript doivent connaître (avancé)

Conseils abrégés que les développeurs JavaScript doivent connaître (avancé)

Oct 19, 2018 pm 02:41 PM
javascript开发

Cet article vous apporte les compétences en abréviation que les développeurs JavaScript doivent connaître (avancées). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Affectation de variable

Lors de l'attribution de la valeur d'une variable à une autre variable, vous devez d'abord vous assurer que la valeur d'origine n'est pas nulle, indéfinie ou vide.

peut être obtenu en écrivant une déclaration de jugement contenant plusieurs conditions :

if (variable1 !== null || variable1 !== undefined || variable1 !== '') {
     let variable2 = variable1;
}
Copier après la connexion

ou abrégée sous la forme suivante :

const variable2 = variable1  || 'new';
Copier après la connexion

Le code suivant peut être Coller dans es6console et testez-le vous-même :

let variable1;
let variable2 = variable1  || '';
console.log(variable2 === ''); // prints true
variable1 = 'foo';
variable2 = variable1  || '';
console.log(variable2); // prints foo
Copier après la connexion

2. Affectation de la valeur par défaut

Si le paramètre attendu est nul ou indéfini, il n'est pas nécessaire d'écrire six lignes de code pour attribuer une valeur par défaut. valeur. Nous pouvons accomplir la même opération en une seule ligne de code en utilisant simplement un court opérateur logique.

let dbHost;
if (process.env.DB_HOST) {
  dbHost = process.env.DB_HOST;
} else {
  dbHost = 'localhost';
}
Copier après la connexion

est abrégé en :

const dbHost = process.env.DB_HOST || 'localhost';
Copier après la connexion

3. Attributs des objets

ES6 fournit un moyen très simple d'attribuer des attributs aux objets. Si le nom de la propriété est identique au nom de la clé, l'abréviation peut être utilisée.

const obj = { x:x, y:y };
Copier après la connexion

est abrégé en :

const obj = { x, y };
Copier après la connexion

4. Fonction flèche

Les fonctions classiques sont faciles à lire et à écrire, mais si elles sont imbriquées dans d'autres fonctions, ils sont appelés , la fonction entière devient un peu verbeuse et déroutante. À ce stade, vous pouvez utiliser les fonctions fléchées pour abréger :

function sayHello(name) {
  console.log('Hello', name);
}
 
setTimeout(function() {
  console.log('Loaded')
}, 2000);
 
list.forEach(function(item) {
  console.log(item);
});
Copier après la connexion

abrégé en :

sayHello = name => console.log('Hello', name);
setTimeout(() => console.log('Loaded'), 2000);
list.forEach(item => console.log(item));
Copier après la connexion

5. Valeur de retour implicite

La valeur de retour est ce que nous généralement utilisé pour renvoyer le mot-clé pour le résultat final de la fonction. Une fonction fléchée avec une seule instruction peut renvoyer un résultat implicitement (la fonction doit omettre les parenthèses ({ }) afin d'omettre le mot-clé return).

Pour renvoyer une instruction multiligne (telle qu'un texte d'objet), vous devez utiliser () au lieu de { } pour envelopper le corps de la fonction. Cela garantit que le code est évalué comme une seule instruction.

function calcCircumference(diameter) {
  return Math.PI * diameter
}
Copier après la connexion

est abrégé en :

calcCircumference = diameter => (
  Math.PI * diameter;
)
Copier après la connexion

6. Valeurs des paramètres par défaut

Vous pouvez utiliser les instructions if pour définir les valeurs par défaut des paramètres de fonction . ES6 prévoit que les valeurs par défaut peuvent être définies dans les déclarations de fonctions.

function volume(l, w, h) {
  if (w === undefined)
    w = 3;
  if (h === undefined)
    h = 4;
  return l * w * h;
}
Copier après la connexion

est abrégé en :

volume = (l, w = 3, h = 4 ) => (l * w * h);
volume(2) //output: 24
Copier après la connexion

7. Chaîne de modèle

Dans le passé, nous avions l'habitude d'utiliser "+" pour convertir plusieurs variables en chaînes , mais existe-t-il un moyen plus simple ?

ES6 fournit les méthodes correspondantes, nous pouvons utiliser des backticks et $ { } pour combiner des variables dans une chaîne.

const welcome = 'You have logged in as ' + first + ' ' + last + '.'
const db = 'http://' + host + ':' + port + '/' + database;
Copier après la connexion

est abrégé en :

const welcome = `You have logged in as ${first} ${last}`;
const db = `http://${host}:${port}/${database}`;
Copier après la connexion

8. Affectation de déstructuration

L'affectation de déstructuration est une expression utilisée pour extraire rapidement les valeurs d'attribut d'un tableau ou d'un objet , et affecté à la variable définie.

En termes d'abréviation de code, l'affectation de déstructuration peut donner de bons résultats.

const observable = require('mobx/observable');
const action = require('mobx/action');
const runInAction = require('mobx/runInAction');
const store = this.props.store;
const form = this.props.form;
const loading = this.props.loading;
const errors = this.props.errors;
const entity = this.props.entity;
Copier après la connexion

est abrégé en :

import { observable, action, runInAction } from 'mobx';
const { store, form, loading, errors, entity } = this.props;
Copier après la connexion

Vous pouvez même spécifier votre propre nom de variable :

const { store, form, loading, errors, entity:contact } = this.props;
Copier après la connexion

9. Opérateur d'expansion

Les opérateurs d'expansion ont été introduits dans ES6, et l'utilisation de l'opérateur spread peut rendre le code JavaScript plus efficace et intéressant.

Certaines fonctions de tableau peuvent être remplacées à l'aide de l'opérateur spread. L'abréviation de

// joining arrays
const odd = [1, 3, 5];
const nums = [2 ,4 , 6].concat(odd);
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = arr.slice( )
Copier après la connexion

est :

// joining arrays
const odd = [1, 3, 5 ];
const nums = [2 ,4 , 6, ...odd];
console.log(nums); // [ 2, 4, 6, 1, 3, 5 ]
 
// cloning arrays
const arr = [1, 2, 3, 4];
const arr2 = [...arr];
Copier après la connexion

La différence avec la fonction concat() est que l'utilisateur peut utiliser l'opérateur spread pour insérer un autre tableau dans n'importe quel tableau.

const odd = [1, 3, 5 ];
const nums = [2, ...odd, 4 , 6];
Copier après la connexion

Vous pouvez également utiliser l'opérateur spread avec les symboles de déstructuration ES6 :

const { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 };
console.log(a) // 1
console.log(b) // 2
console.log(z) // { c: 3, d: 4 }
Copier après la connexion

10 Paramètres obligatoires

Par défaut, si vous ne fournissez pas de paramètres de fonction. S'il est transmis par valeur, JavaScript définira le paramètre de fonction sur non défini. D'autres langues émettront des avertissements ou des erreurs. Pour effectuer l'affectation de paramètres, vous pouvez utiliser une instruction if pour générer une erreur non définie, ou vous pouvez profiter des "paramètres forcés".

function foo(bar) {
  if(bar === undefined) {
    throw new Error('Missing parameter!');
  }
  return bar;
}
Copier après la connexion

est abrégé en :

mandatory = ( ) => {
  throw new Error('Missing parameter!');
}
foo = (bar = mandatory( )) => {
  return bar;
}
Copier après la connexion

11. Array.find

Si vous avez déjà écrit la fonction de recherche en JavaScript ordinaire, vous avez peut-être utilisé pour cycle. Dans ES6, une nouvelle fonction de tableau appelée find() a été introduite, qui est un raccourci pour implémenter une boucle for.

const pets = [
  { type: 'Dog', name: 'Max'},
  { type: 'Cat', name: 'Karl'},
  { type: 'Dog', name: 'Tommy'},
]
function findDog(name) {
  for(let i = 0; i<pets.length; ++i) {
    if(pets[i].type === &#39;Dog&#39; && pets[i].name === name) {
      return pets[i];
    }
  }
}
Copier après la connexion

est abrégé en :

pet = pets.find(pet => pet.type ==='Dog' && pet.name === 'Tommy');
console.log(pet); // { type: 'Dog', name: 'Tommy' }
Copier après la connexion

12 Objet [clé]

Bien qu'il soit courant d'écrire foo.bar comme foo ['bar'] pratique, mais cette pratique constitue la base de l’écriture de code réutilisable.

Considérons l'exemple simplifié suivant d'une fonction de vérification :

function validate(values) {
  if(!values.first)
    return false;
  if(!values.last)
    return false;
  return true;
}
console.log(validate({first:'Bruce',last:'Wayne'})); // true
Copier après la connexion

La fonction ci-dessus complète parfaitement le travail de vérification. Mais lorsqu’il existe de nombreux formulaires, une validation doit être appliquée, et il y aura différents champs et règles. Ce serait un bon choix si vous pouviez créer une fonction de validation générique pouvant être configurée au moment de l'exécution.

// object validation rules
const schema = {
  first: {
    required:true
  },
  last: {
    required:true
  }
}
 
// universal validation function
const validate = (schema, values) => {
  for(field in schema) {
    if(schema[field].required) {
      if(!values[field]) {
        return false;
      }
    }
  }
  return true;
}
console.log(validate(schema, {first:'Bruce'})); // false
console.log(validate(schema, {first:'Bruce',last:'Wayne'})); // true
Copier après la connexion

Maintenant que nous avons cette fonction de validation, nous pouvons la réutiliser dans tous les formulaires sans avoir à écrire une fonction de validation personnalisée pour chaque formulaire.

13. Opérateurs double-bit

Les opérateurs au niveau du bit sont les points de connaissances de base dans les didacticiels JavaScript pour débutants, mais nous n'utilisons pas souvent les opérateurs au niveau du bit. Parce que personne ne veut travailler avec des 1 et des 0 sans s'occuper du binaire.

Mais l'opérateur à double panneton a un cas très pratique. Vous pouvez utiliser des opérateurs double-bits au lieu de Math.floor( ). L’avantage de l’opérateur de positionnement double négatif est qu’il effectue la même opération plus rapidement.

Math.floor(4.9) === 4  //true
Copier après la connexion

est abrégé en :

~~4.9 === 4  //true
Copier après la connexion

Ce qui précède est une introduction complète aux techniques d'abréviation que les développeurs JavaScript doivent connaître (avancés), si vous souhaitez en savoir plus sur Tutoriel vidéo JavaScript , veuillez faire attention au site Web 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!

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 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
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)

Comparaison approfondie : différences fonctionnelles entre VSCode et Visual Studio Comparaison approfondie : différences fonctionnelles entre VSCode et Visual Studio Mar 25, 2024 pm 05:33 PM

Titre : Comparaison approfondie : Différences fonctionnelles entre VSCode et Visual Studio, des exemples de code spécifiques sont nécessaires. Qu'ils écrivent du code front-end ou du code back-end, les développeurs doivent souvent choisir un environnement de développement intégré (IDE) qui leur convient pour améliorer leur travail. efficacité. Parmi les nombreux IDE, VSCode et Visual Studio sont deux produits populaires. Cet article comparera en profondeur les différences fonctionnelles entre les deux IDE et les démontrera à travers des exemples de code spécifiques. VSCode a été lancé par Microsoft

Layui est-il un framework front-end ? Layui est-il un framework front-end ? Apr 01, 2024 pm 11:36 PM

la réponse est. Layui est un framework frontal qui fournit un ensemble de composants et d'outils prédéfinis pour créer des applications Web modernes, notamment des composants d'interface, la manipulation de données, des graphiques, des animations, une conception réactive et d'autres fonctionnalités.

ECharts dépend-il de jQuery ? Analyse en profondeur ECharts dépend-il de jQuery ? Analyse en profondeur Feb 27, 2024 am 08:39 AM

ECharts doit-il s'appuyer sur jQuery ? L'interprétation détaillée nécessite des exemples de code spécifiques. ECharts est une excellente bibliothèque de visualisation de données qui fournit une riche gamme de types de graphiques et de fonctions interactives et est largement utilisée dans le développement Web. Lors de l'utilisation d'ECharts, de nombreuses personnes se poseront une question : ECharts doit-il s'appuyer sur jQuery ? Cet article expliquera cela en détail et donnera des exemples de code spécifiques. Premièrement, pour être clair, ECharts lui-même ne s'appuie pas sur jQuery ;

Sélection du moteur de modèles et partage d'expérience d'utilisation dans le développement JavaScript Sélection du moteur de modèles et partage d'expérience d'utilisation dans le développement JavaScript Nov 04, 2023 am 11:42 AM

Partage d'expérience sur la sélection et l'utilisation du moteur de modèles dans le développement JavaScript Introduction : Dans le développement front-end moderne, le moteur de modèles (TemplateEngine) joue un rôle crucial. Ils permettent aux développeurs d'organiser et de gérer de grandes quantités de données dynamiques de manière plus efficace et de séparer efficacement les données de la présentation de l'interface. Dans le même temps, le choix d'un moteur de modèles approprié peut également apporter aux développeurs une meilleure expérience de développement et une optimisation des performances. Cependant, parmi les nombreux moteurs de modèles JavaScript, lequel choisir ? attraper

Qu'est-ce que vscode est généralement utilisé pour écrire ? Qu'est-ce que vscode est généralement utilisé pour écrire ? Mar 14, 2024 pm 05:54 PM

VSCode est un puissant éditeur de code qui prend en charge plusieurs langages de programmation et formats de fichiers. Il prend en charge JavaScript, Python, Java, C++, TypeScript, HTML/CSS, Go et d'autres langages, et peut prendre en charge davantage de langages via des plug-ins d'extension, notamment Rust, C#, Objective-C, PHP, Ruby, Swift, SQL, XML, etc.

Comment utiliser XPath pour rechercher à partir d'un nœud DOM spécifié en JavaScript? Comment utiliser XPath pour rechercher à partir d'un nœud DOM spécifié en JavaScript? Apr 04, 2025 pm 11:15 PM

Explication détaillée de la méthode de recherche XPATH sous les nœuds DOM en JavaScript, nous devons souvent trouver des nœuds spécifiques de l'arbre Dom basé sur les expressions XPath. Si vous avez besoin de ...

SAP annonce de nombreuses nouvelles fonctionnalités d'IA générative, améliorant la plateforme Datasphere SAP annonce de nombreuses nouvelles fonctionnalités d'IA générative, améliorant la plateforme Datasphere Mar 07, 2024 pm 06:55 PM

SAP déploie une multitude de nouvelles fonctionnalités d'IA générative et ces capacités seront bientôt disponibles sur la plateforme SAP Datasphere. SAP a déclaré que les dernières fonctionnalités mises à jour offriront aux utilisateurs une expérience d'interaction avec les données commerciales plus intuitive et contribueront à promouvoir une transformation plus intelligente des entreprises. Ces nouvelles fonctionnalités incluent des outils copilotes pour automatiser une variété de tâches d'analyse de données et des capacités de bases de données vectorielles pour prendre en charge des charges de travail d'IA générative plus avancées. De plus, de nouveaux graphiques de connaissances sont lancés pour révéler diverses informations et modèles dans des ensembles de données complexes. L'introduction de ces fonctions apportera aux utilisateurs des flux de travail plus efficaces, améliorera les capacités d'analyse des données et fournira une assistance plus complète à la prise de décision de l'entreprise. SAP Datasphere en mars 2023

Comment calculer efficacement l'angle entre deux points en JavaScript? Comment calculer efficacement l'angle entre deux points en JavaScript? Apr 04, 2025 pm 07:36 PM

En JavaScript, vous rencontrez souvent la nécessité de calculer l'angle entre deux points (radians) d'un point par rapport à un autre point.

See all articles