Maison interface Web js tutoriel Apprenez à modifier le code JavaScript en guide de syntaxe ES6

Apprenez à modifier le code JavaScript en guide de syntaxe ES6

Sep 11, 2017 am 09:34 AM
javascript js 语法

L'éditeur suivant vous apportera un guide incomplet (partage) sur la modification du code JavaScript vers la syntaxe ES6. L'éditeur pense que c'est plutôt bien, et maintenant je veux vous le donner et le donner comme référence. Venez jeter un oeil avec l'éditeur

Table des matières


* 核心例子
* 修改成静态变量(const)或块级变量(let)
 * 开始修改
 * 疑问解释(重复定义会发生什么)
 * 疑问解释(let的块级作用域是怎样的)
 * 疑问解释(const定义的变量在基础数据类型和引用类型中的差异)
* 修改成Promise的形式
 * 预备知识(回调函数是什么)
 * 预备知识(如何把回调函数改为Promise)
 * 开始修改
* 修改成箭头函数(Arrow Function)
 * 预备知识(箭头函数是什么)
 * 预备知识(箭头函数函数中的this是个坑)
 * 开始修改
* 修改拼接字符串成模板字符串
 * 预备知识(字符串的拼接方式)
 * 预备知识(改为模板字符串的方式)
 * 开始修改
* 修改成解构的对象
* 修改成Class
Copier après la connexion

Exemples principaux

Pour les exemples de cet article, veuillez les tester dans la dernière version de Chrome. La configuration de l'environnement pour la conversion d'ES6 en ES5 dépasse le cadre de cet article.


// 定义一个学生构造函数
var People = function(name, age) {
 this.name = name
 this.age = age
}

// 创建小明实例
var xiaoming = new People('xiaoming', 18)

// 定义一个考试函数
// 定义两个回调函数,在适当的时候把参数传进去
var examStart = function(callbackSucc, callbackFail) {
 var result = prompt('1+5=')
 if(result === '6') {
 callbackSucc('Awesome. Your answer is ' + result)
 }
 else {
 callbackFail('You can try again. Your answer is ' + result)
 }
}

// 开始考试
// 传入的两个回调函数分别处理结果
examStart(function(res) {
 console.log(res)
}, function(res) {
 console.log(res)
})
Copier après la connexion

Modifiez-le en variable statique (const) ou variable de niveau bloc (let)

Lorsque la valeur de vos besoins en variables Lors de la modification, des variables au niveau du bloc (let) doivent être utilisées. D'autres fois, utilisez des variables statiques (const).

Qu'il s'agisse d'une variable statique (const) ou d'une variable de niveau bloc (let), elle ne peut pas être définie à plusieurs reprises, sinon une erreur sera signalée.

Une fois qu'une variable statique (const) est définie, le type de données ne peut plus être modifié. Cependant, les types référence, tels que Array et Object, peuvent utiliser les méthodes prototypes correspondantes pour opérer sur les données internes.

Commencer à modifier

Les variables que nous définissons ici n'ont pas besoin d'être modifiées, nous les changeons donc toutes directement en const. Dans un projet, il existe une astuce pour déterminer s'il faut le changer en const ou let. Vous pouvez utiliser la fonction de vérification des variables de l'éditeur (par exemple, dans sublime, double-cliquez sur le nom de la variable puis ctrl+d). Déterminez ensuite si la variable a reçu une valeur dans le code et si la variable doit être modifiée en fonction de votre propre jugement. Sinon, utilisez const.


// 修改一 var ==> const
const Student1 = function(name, age) {
 this.name = name
 this.age = age
}

// 修改二 var ==> const
const xiaoming1 = new Student1('xiaoming', 18)

// 修改三 var ==> const
const examStart1 = function(callbackSucc, callbackFail) {
 // 修改四 var ==> const
 const result = prompt('1+5=')
 if(result === '6') {
 callbackSucc('Awesome. Your answer is ' + result)
 }
 else {
 callbackFail('You can try again. Your answer is ' + result)
 }
}

examStart1(function(res) {
 console.log(res)
}, function(res) {
 console.log(res)
})
Copier après la connexion

Explication des doutes (que se passera-t-il si les définitions sont répétées)


const author = 'bw2'
const author = 'bw3' // Uncaught SyntaxError: Identifier 'author' has already been declared
let author = 'bw4' // Uncaught SyntaxError: Identifier 'author' has already been declared
Copier après la connexion

Explication des doutes (Voyons Qu'est-ce que la portée au niveau du bloc ?)


// let定义的变量存在块级作用域
if(true) {
 let test1 = 2333
}
console.log(test1) // Uncaught ReferenceError: t is not defined


// var定义的变量不存在,会直接成为全局变量
if(true) {
 var test2 = 2333
}
console.log(test2) // 2333
Copier après la connexion

Explication de la question (la différence entre les variables définies par const dans les types de données de base et les types de référence)

Avant de commencer l'exemple, passez en revue les types de données de base suivants. Nombre, chaîne, booléen, nul, non défini, symbole. Parmi eux, Symbol est nouvellement ajouté dans ES6. À l’exception des types de données de base, tous sont des types de référence. Les types de référence courants sont Array et Object.


// const定义的变量值是基础数据类型时,不能修改值,也不能修改类型
const num = 2333
num = 2334 // Uncaught TypeError: Assignment to constant variable.
num = '' // Uncaught TypeError: Assignment to constant variable.

// const定义的变量值是引用类型时,可以修改值
const obj = {}
obj.test = 2333
console.log(obj.test) // 2333

const arr = []
arr.push(1)
console.log(arr) // [1]
Copier après la connexion

Modifiez-le sous la forme de Promise

Du point de vue de l'application, la fonction principale de Promise is La fonction de rappel peut être modifiée en mode d'appel en chaîne.

Lorsqu'il y a plusieurs fonctions de rappel imbriquées, le code aura de nombreux niveaux d'indentation, ce qui n'est pas propice à la lecture. C’est alors que Promise entre sur scène.

S'il n'y a qu'une seule fonction de rappel et qu'aucune gestion des erreurs n'est impliquée, il n'est pas recommandé de la changer sous la forme de Promesse.

Connaissances préliminaires (qu'est-ce qu'une fonction de rappel)

Une fonction de rappel fait référence à la définition d'une fonction, et le paramètre transmis est une fonction. Exécutez ensuite la fonction transmise à un emplacement spécifique de la fonction et transmettez les données requises en tant que paramètres. Les fonctions de rappel sont courantes dans la programmation asynchrone. Tels que l'envoi de requêtes Ajax et d'opérations de fichiers asynchrones dans NodeJS. Voir vaut mieux qu’entendre. Prenons l’exemple le plus simple.


// 定义一个支持传入回调函数的函数
function fun1(callback) {
 // 执行传入的函数,并将值2333作为参数传入
 callback(2333)
}

// 执行定义的函数
fun1(function(res){
 // 输出传入的参数
 console.log(res)
})
Copier après la connexion

Connaissances préliminaires (comment changer la fonction de rappel en Promesse)

Ceci est juste à titre d'exemple et ne signifie pas impliquer Lors de la gestion des erreurs, il n'est pas recommandé de le remplacer par Promise.


function fun2() {
 // 在函数中返回一个Promise对象
 // resolve和reject都是函数
 return new Promise(function(resolve, reject){
 // resolve函数中的参数将会出现在.then方法中
 // reject函数中的参数将会出现在.ctch方法中
 resolve(2333)
 })
}

fun2().then(function(res){
 console.log(res) // 2333
})
Copier après la connexion

Commencer à modifier

La promesse utilise la résolution et le rejet pour mettre respectivement le résultat correct et l'invite d'erreur dans la chaîne. les méthodes .then et .catch appelées par la formule.


const examStart2 = function() {
 // 返回一个Promise对象
 return new Promise(function(resolve, reject) {
 var result = prompt('1+5=')
 if(result === '6') {
  resolve('Awesome. Your answer is ' + result)
 }
 else {
  reject('You can try again. Your answer is ' + result)
 }
 })
}
examStart2()
.then(function(res) {
 console.log(res)
})
.catch(function(err) {
 console.log(err)
})
Copier après la connexion

Modifier en fonction de flèche (Fonction de flèche)

Connaissances préliminaires (qu'est-ce que la fonction de flèche)

La fonction flèche est un petit outil utilisé pour nous aider à simplifier la structure des fonctions.


// 普通函数形式
const add1 = function(a, b) {
 return a + b
}
add1(1, 2) // 3

// 箭头函数形式
const add2 = (a, b) => a + b
add2(1, 2) // 3
Copier après la connexion

Connaissances préliminaires (cela dans la fonction flèche est un écueil)


// 箭头函数没有独立的this作用域
const obj1 = {
 name: 'bw2',
 showName: () => {
 return this.name
 }
}
obj1.showName() // ""

// 解决方案:改为function模式
const obj2 = {
 name: 'bw2',
 showName: function() {
 return this.name
 }
}
obj2.showName() // "bw2"
Copier après la connexion

Commencer à modifier


var examStart3 = function() {
 // 修改一
 return new Promise((resolve, reject) => {
 var result = prompt('1+5=')
 if(result === '6') {
  resolve('Awesome. Your answer is ' + result)
 }
 else {
  reject('You can try again. Your answer is ' + result)
 }
 })
}
// 修改二
examStart3().then((res) => console.log(res)).catch((err) => console.log(err))
Copier après la connexion

Modifier la chaîne concaténée en chaîne modèle

Connaissances préliminaires (comment épisser des chaînes)


const xh1 = 'xiaohong'
console.log('I\'m ' + xh1 + '.') // I'm xiaohong.
Copier après la connexion

Connaissances préliminaires (changées en méthode de chaîne modèle )

Le modèle de chaîne n'utilise plus de guillemets simples, mais la touche ` (celle en dessous de ESC) dans l'état de saisie anglais.


const xh2 = 'xiaohong'
console.log(`I'm ${xh2}.`) // I'm xiaohong.
Copier après la connexion

Commencer à modifier


var examStart4 = function() {
 return new Promise((resolve, reject) => {
 var result = prompt('1+5=')
 if(result === '6') {
  // 修改一
  resolve(`Awesome. Your answer is ${result}`)
 }
 else {
  // 修改二
  reject(`You can try again. Your answer is ${result}`)
 }
 })
}
examStart4().then((res) => console.log(res)).catch((err) => console.log(err))
Copier après la connexion

Modifier en objet déstructuré

La déstructuration d'objet est souvent utilisée lorsque NodeJS importe un module dans le package. Pour les objets écrits par vous-même, si vous devez les déconstruire, vous devez vous assurer que les noms des objets sont déconstruits sans provoquer de conflits. C'est pour la commodité des exemples, et aucune dénomination très unique n'est utilisée.


const People2 = function(name, age) {
 this.name = name
 this.age = age
}
const xiaoming2 = new People2('xiaoming2', 18)

// 开始结构
const {name, age} = xiaoming2
// 现在可以独立访问了
console.log(name) // xiaoming2
console.log(age) // 18
Copier après la connexion

est changé en Class

La classe est un sucre syntaxique, mais cela ne nous empêche pas de le manger, il.

Dans React, la définition d'un modèle est généralement une classe, et les méthodes de cycle de vie sont également écrites dans la classe.


class People3 {
 constructor(name, age){
 this.name = name
 this.age = age
 }
 showName() {
 return this.name
 }
}

const xiaoming3 = new People3('xiaoming3', 18)
console.log(xiaoming3) // People {name: "xiaoming3", age: 18}
console.log(xiaoming3.showName()) // xiaoming3
Copier après la connexion

Pas assez ? L'article est terminé. Mais concernant l'exploration d'ES6, nous continuerons à sauvegarder les mises à jour.

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Recommandé : Excellent projet de détection et de reconnaissance des visages open source JS Apr 03, 2024 am 11:55 AM

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Conseils de développement PHP et JS : maîtrisez la méthode de création de graphiques en bougies boursières Dec 18, 2023 pm 03:39 PM

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

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

La relation entre js et vue La relation entre js et vue Mar 11, 2024 pm 05:21 PM

La relation entre js et vue : 1. JS comme pierre angulaire du développement Web ; 2. L'essor de Vue.js en tant que framework front-end ; 3. La relation complémentaire entre JS et Vue ; Vue.

Quelles sont les caractéristiques syntaxiques et structurelles des expressions lambda ? Quelles sont les caractéristiques syntaxiques et structurelles des expressions lambda ? Apr 25, 2024 pm 01:12 PM

L'expression Lambda est une fonction anonyme sans nom et sa syntaxe est la suivante : (parameter_list) -> expression. Ils présentent l’anonymat, la diversité, le curry et la fermeture. Dans des applications pratiques, les expressions Lambda peuvent être utilisées pour définir des fonctions de manière concise, comme la fonction de sommation sum_lambda=lambdax,y:x+y, et appliquer la fonction map() à la liste pour effectuer l'opération de sommation.

Comment obtenir facilement le code d'état HTTP en JavaScript Comment obtenir facilement le code d'état HTTP en JavaScript Jan 05, 2024 pm 01:37 PM

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

méthode js pour actualiser la page actuelle méthode js pour actualiser la page actuelle Jan 24, 2024 pm 03:58 PM

js pour actualiser la page actuelle : 1. location.reload(); 2. location.href; 3. location.assign(); Introduction détaillée : 1. location.reload(), utilisez la méthode location.reload() pour recharger la page actuelle ; 2. location.href, vous pouvez actualiser la page actuelle en définissant l'attribut location.href, etc.

La différence entre __proto__ et prototype en JS La différence entre __proto__ et prototype en JS Feb 19, 2024 pm 01:38 PM

__proto__ et prototype sont deux attributs liés aux prototypes en JS, et ils ont des fonctions légèrement différentes. Cet article présentera et comparera les différences entre les deux en détail et fournira des exemples de code correspondants. Tout d’abord, comprenons ce qu’ils signifient et à quoi ils servent. proto__proto__ est une propriété intégrée d'un objet qui pointe vers le prototype de l'objet. Chaque objet possède un attribut __proto__, y compris les objets personnalisés, les objets intégrés et les objets fonction. Par genre __proto__

See all articles