Résumé des nouvelles fonctionnalités de JS--ES 2015/6
ES 2015/6 propose de nombreux nouveaux contenus. Voici seulement un aperçu (pas nécessairement exhaustif) de ces fonctionnalités. En fait, il y aura beaucoup de connaissances dans chaque point que vous creuserez. Cet article vise à les résumer, il ne mènera donc pas de discussion ni de recherche approfondies sur ces caractéristiques. Ensuite, si j'ai le temps, j'écrirai quelques blogs distincts pour approfondir les points couramment utilisés et avoir des échanges approfondis avec tout le monde.
Fonction flèche
La fonction flèche, une forme abrégée de fonction implémentée via la syntaxe =>
, a une syntaxe similaire en C#/JAVA8/CoffeeScript. Contrairement aux fonctions, les fonctions fléchées partagent le même this
avec leur contexte d'exécution. Si une fonction flèche apparaît à l'intérieur d'un objet fonction, elle partage la variable arguments
avec la fonction.
// Expression bodiesvar odds = evens.map(v => v + 1);var nums = evens.map((v, i) => v + i);// Statement bodiesnums.forEach(v => { if (v % 5 === 0) fives.push(v);});// Lexical thisvar bob = { _name: "Bob", _friends: ['jim'], printFriends() { this._friends.forEach(f => console.log(this._name + " knows " + f)); // Bob knows jim }};// Lexical argumentsfunction square() { let example = () => { let numbers = []; for (let number of arguments) { numbers.push(number * number); } return numbers; }; return example();}square(2, 4, 7.5, 8, 11.5, 21); // returns: [4, 16, 56.25, 64, 132.25, 441]
Class Class
Javascript 类
n'introduit pas de nouveau modèle d'héritage d'objet orienté objet , mais du sucre syntaxique basé sur l'héritage prototypique. Il fournit une syntaxe plus simple et plus claire pour créer des objets et gérer l'héritage. La classe
class Rectangle { constructor(height, width) { this.height = height; this.width = width; }}
ne déclare pas de promotion, vous devez vous assurer qu'elle a été déclarée avant d'appeler.
Constructor constructor
est une méthode spéciale utilisée pour créer et initialiser des instances d'une classe.
Méthode statiquestatic
le mot-clé est utilisé pour déclarer la méthode statique
Créer une sous-classeextends
le mot-clé est utilisé pour créer une sous-classe, veuillez noter ici : extends ne peut pas être utilisé pour étendre des objets normaux (non -constructible/non constructible), si vous souhaitez hériter d'un objet normal, utilisez Object.setPrototypeOf()
. Le mot-clé
Call super classsuper
peut être utilisé pour appeler des méthodes dans la classe parent
Mix-ins
Mixte
Littéraux d'objet améliorés
Il peut être implémenté sous forme de littéraux pour définir des prototypes, des abréviations de paires clé-valeur, des méthodes de définition, etc., et des noms d'attributs dynamiques.
var obj = { // Sets the prototype. "__proto__" or '__proto__' would also work. __proto__: theProtoObj, // Computed property name does not set prototype or trigger early error for // duplicate __proto__ properties. ['__proto__']: somethingElse, // Shorthand for ‘handler: handler’ handler, // Methods toString() { // Super calls return "d " + super.toString(); }, // Computed (dynamic) property names [ "prop_" + (() => 42)() ]: 42};
Chaîne de modèle
La chaîne de modèle fournit du sucre syntaxique pour la construction de chaînes, dans Prel/ Des fonctionnalités similaires sont également disponible en python et dans d'autres langages.
// Basic literal string creation `This is a pretty little template string.` // Multiline strings `In ES5 this is not legal.` // Interpolate variable bindings var name = "Bob", time = "today"; `Hello ${name}, how are you ${time}?` // Unescaped template strings String.raw`In ES5 "\n" is a line-feed.` // Construct an HTTP request prefix is used to interpret the replacements and construction GET`http://foo.org/bar?a=${a}&b=${b} Content-Type: application/json X-Credentials: ${credentials} { "foo": ${foo}, "bar": ${bar}}`(myOnReadyStateChangeHandler);
Affectation Destructuration
La méthode Destructuring est une expression Javascript, qui permet d'extraire une valeur d'un tableau ou une propriété d'un objet dans un milieu de variable différent.
// list matching var [a, ,b] = [1,2,3]; a === 1; b === 3; // object matching (用新变量名赋值) var { op: a, lhs: { op: b }, rhs: c } = getASTNode() // object matching shorthand // binds `op`, `lhs` and `rhs` in scope var {op, lhs, rhs} = getASTNode() // Can be used in parameter position function g({name: x}) { console.log(x); } g({name: 5}) // Fail-soft destructuring var [a] = []; a === undefined; // Fail-soft destructuring with defaults var [a = 1] = []; a === 1; // 变量可以先赋予默认值。当要提取的对象没有对应的属性,变量就被赋予默认值。 var {a = 10, b = 5} = {a: 3}; console.log(a); // 3 console.log(b); // 5 // Destructuring + defaults arguments function r({x, y, w = 10, h = 10}) { return x + y + w + h; } r({x:1, y:2}) === 23 // 对象属性计算名和解构 let key = "z"; let { [key]: foo } = { z: "bar" }; console.log(foo); // "bar"
Default + Rest + Spread
Fournit des valeurs par défaut pour les paramètres de fonction & ...
Nombre fixe de paramètres
function f(x, y=12) { // y is 12 if not passed (or passed as undefined) return x + y; } f(3) == 15 function f(x, ...y) { // y is an Array return x * y.length; } f(3, "hello", true) == 6 function f(x, y, z) { return x + y + z; } // Pass each elem of array as argument f(...[1,2,3]) == 6
Let + Const
let
est utilisé pour déclarer des variables de portée au niveau du bloc. const
est utilisé pour déclarer des constantes.
function f() { { let x; { // this is ok since it's a block scoped name const x = "sneaky"; // error, was just defined with `const` above x = "foo"; } // this is ok since it was declared with `let` x = "bar"; // error, already declared above in this block let x = "inner"; } }
Itérateur
Des itérateurs personnalisés peuvent être créés via symbol.iterator.
let fibonacci = { [Symbol.iterator]() { let pre = 0, cur = 1; return { next() { [pre, cur] = [cur, pre + cur]; return { done: false, value: cur } } } } } for (var n of fibonacci) { // truncate the sequence at 1000 if (n > 1000) break; console.log(n); }
Générateurs
Les fonctions normales utilisent des déclarations de fonction, tandis que les fonctions génératrices utilisent des déclarations de fonction*.
À l'intérieur de la fonction génératrice, il y a une syntaxe de type retour : le mot-clé rendement. La différence entre les deux est qu'une fonction normale ne peut retourner qu'une seule fois, tandis qu'une fonction génératrice peut produire plusieurs fois (bien sûr, elle ne peut également produire qu'une seule fois). Pendant l'exécution du générateur, il s'arrêtera immédiatement lorsqu'il rencontrera une expression de rendement, et l'état d'exécution pourra être repris plus tard.
function* quips(name) { yield "你好 " + name + "!"; yield "希望你能喜欢这篇介绍ES6的译文"; if (name.startsWith("X")) { yield "你的名字 " + name + " 首字母是X,这很酷!"; } yield "我们下次再见!"; }
Unicode
// identique à ES5.1 "
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

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 !

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)

Tout le monde sait qu'il existe de nombreuses versions du système Win7, telles que la version Win7 Ultimate, la version Win7 Professional, la version Win7 Home, etc. De nombreux utilisateurs sont coincés entre la version Home et la version Ultimate et ne savent pas quelle version choisir. alors aujourd'hui, je vais vous parler des différences entre Win7 Family Meal et Win7 Ultimate. Jetons un coup d'œil. 1. Experience Different Home Basic Edition rend vos opérations quotidiennes plus rapides et plus simples et vous permet d'accéder plus rapidement et plus facilement à vos programmes et documents les plus fréquemment utilisés. Home Premium vous offre la meilleure expérience de divertissement, permettant de profiter et de partager facilement vos émissions de télévision, photos, vidéos et musiques préférées. L'Ultimate Edition intègre toutes les fonctions de chaque édition et possède toutes les fonctions de divertissement et fonctionnalités professionnelles de Windows 7 Home Premium.

Comprendre les fonctionnalités clés de SpringMVC : pour maîtriser ces concepts importants, des exemples de code spécifiques sont nécessaires. SpringMVC est un cadre de développement d'applications Web basé sur Java qui aide les développeurs à créer des structures flexibles et évolutives via le modèle architectural Model-View-Controller (MVC). application Web. Comprendre et maîtriser les fonctionnalités clés de SpringMVC nous permettra de développer et de gérer nos applications Web plus efficacement. Cet article présentera quelques concepts importants de SpringMVC

Avec le développement rapide d'Internet, les langages de programmation évoluent et se mettent à jour constamment. Parmi eux, le langage Go, en tant que langage de programmation open source, a attiré beaucoup d'attention ces dernières années. Le langage Go est conçu pour être simple, efficace, sûr et facile à développer et à déployer. Il présente les caractéristiques d'une concurrence élevée, d'une compilation rapide et d'une sécurité de la mémoire, ce qui le rend largement utilisé dans des domaines tels que le développement Web, le cloud computing et le big data. Cependant, il existe actuellement différentes versions du langage Go disponibles. Lors du choix d’une version linguistique Go appropriée, nous devons prendre en compte à la fois les exigences et les fonctionnalités. tête

Il n'y a pas de concept de classe au sens traditionnel dans Golang (langage Go), mais il fournit un type de données appelé structure, à travers lequel des fonctionnalités orientées objet similaires aux classes peuvent être obtenues. Dans cet article, nous expliquerons comment utiliser les structures pour implémenter des fonctionnalités orientées objet et fournirons des exemples de code concrets. Définition et utilisation des structures Examinons d'abord la définition et l'utilisation des structures. Dans Golang, les structures peuvent être définies via le mot-clé type, puis utilisées si nécessaire. Les structures peuvent contenir des attributs

Certaines personnes souhaitent mettre à jour Win11, mais elles ne savent pas s'il y a beaucoup de bugs dans Win11 et si la mise à jour posera des problèmes. En fait, il y a actuellement des bugs dans Win11, mais ils ont peu d'impact sur l'utilisation. Y a-t-il beaucoup de bugs dans Win11 ? Réponse : Il y a encore de nombreux bugs dans Win11. Ces bugs ont cependant peu d’impact sur l’utilisation quotidienne. Si l'utilisateur a des exigences élevées pour une utilisation quotidienne, il est recommandé de l'utiliser plus tard. Résumé des bogues de Win11 1. Gestionnaire de ressources 1. Parfois, un dépassement de mémoire se produit, entraînant une utilisation élevée de la mémoire du gestionnaire de ressources. 2. Cette situation entraînera une occupation de la mémoire de plus de 70 %, provoquant le blocage ou même le crash de l'ordinateur. 2. Conflit et crash 1. Certaines applications ne sont pas suffisamment compatibles, provoquant des conflits entre elles. 2. Bien qu'il existe relativement peu de procédures de conflit,

Les trois caractéristiques de la 5G sont : 1. Haut débit ; dans les applications pratiques, la vitesse du réseau 5G est plus de 10 fois supérieure à celle du réseau 4G. 2. Faible latence : la latence du réseau 5G est d'environ plusieurs dizaines de millisecondes, ce qui est plus rapide que la vitesse de réaction humaine. 3. Une connexion étendue ; l’émergence du réseau 5G, combinée à d’autres technologies, créera une nouvelle scène de l’Internet des objets.

Les fonctions C++ ont les types suivants : fonctions simples, fonctions const, fonctions statiques et fonctions virtuelles ; les fonctionnalités incluent : les fonctions en ligne, les paramètres par défaut, les retours de référence et les fonctions surchargées. Par exemple, la fonction calculateArea utilise π pour calculer l'aire d'un cercle d'un rayon donné et la renvoie en sortie.

Les caractéristiques de Java sont : 1. Simple et facile à apprendre 2. Orienté objet, rendant le code plus réutilisable et maintenable 3. Indépendant de la plate-forme, capable de fonctionner sur différents systèmes d'exploitation 4. Gestion de la mémoire, via des déchets automatiques ; mécanisme de collecte Gérer la mémoire 5. Vérification de type forte, les variables doivent déclarer leur type avant utilisation 6. Sécurité, qui peut empêcher l'accès non autorisé et l'exécution de code malveillant 7. Prise en charge du multithread, qui peut améliorer les performances et la réactivité du programme ; 8. La gestion des exceptions peut éviter les plantages du programme ; 9. Un grand nombre de bibliothèques et de frameworks de développement ;
