Maison >interface Web >js tutoriel >Explication détaillée d'exemples étendus de différents types de données dans es6
1. L'extension de chaîne
ajoute un itérateur à la chaîne, qui peut être parcouru par for...of
inclut , StartsWith et EndsWith renvoient tous deux des valeurs booléennes et prennent en charge le deuxième paramètre (la position de départ de la recherche EndsWith cible les n premiers caractères, et les deux autres vont du nième à la fin
Number.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;
Number.isSafeInteger() est utilisé pour déterminer si un entier se situe dans cette plage ;
opérateur exponentiel 2 * * 3 === 8, différent de l'implémentation Math.pow, pour des opérations particulièrement volumineuses ; , le dernier chiffre du résultat de l'opération est différent
permet de définir une valeur par défaut pour la fonction. Si un paramètre non-tail est défini sur une valeur par défaut, en fait ce paramètre ne peut pas être omis
Après avoir défini la valeur par défaut, l'attribut length
de la fonction renverra le nombre de paramètres sans valeur par défaut spécifiée
Si le paramètre avec une valeur par défaut définie n'est pas le dernier paramètre, alors l'attribut length
ne sera plus compté dans le paramètres suivants ;
Une fois la valeur par défaut du paramètre définie, le paramètre formera une portée (contexte) distincte lorsque la fonction est déclarée et initialisée. Une fois l'initialisation terminée, cette portée disparaîtra. Ce comportement de syntaxe n'apparaîtra pas lorsque la valeur par défaut du paramètre n'est pas définie.
Paramètre de repos (... nom de la variable)
Opérateur d'extension (...), convertit un tableau en séquence de paramètres séparés par des virgules .
/* 替代数组的apply方法 */// ES5的写法function f(x, y, z) { // ...}var args = [0, 1, 2]; f.apply(null, args);// ES6的写法function f(x, y, z) { // ...}var args = [0, 1, 2]; f(...args);/* --------------------------------- */// ES5的写法Math.max.apply(null, [14, 3, 77])// ES6的写法Math.max(...[14, 3, 77])// 等同于Math.max(14, 3, 77);/* --------------------------------- */// ES5的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5]; Array.prototype.push.apply(arr1, arr2);// ES6的写法var arr1 = [0, 1, 2];var arr2 = [3, 4, 5]; arr1.push(...arr2);
Remarque sur l'utilisation des fonctions fléchées :
(1) L'objet this
dans le corps de la fonction est l'endroit où il s'agit d'un objet défini, plutôt que de l'objet dans lequel il est utilisé.
(2) ne peut pas être utilisé comme constructeur, c'est-à-dire que la commande new
ne peut pas être utilisée, sinon une erreur sera générée.
(3) L'objet arguments
ne peut pas être utilisé, car l'objet n'existe pas dans le corps de la fonction. Si vous souhaitez l'utiliser, vous pouvez utiliser le paramètre rest à la place.
(4) La commande yield
ne peut pas être utilisée, donc la fonction flèche ne peut pas être utilisée comme fonction Générateur.
5. Extensions d'objet
Notation d'abréviation d'attribut
Attribut expression de nom, [nom de la variable]
L'attribut name
de la méthode renvoie le nom de la fonction (c'est-à-dire le nom de la méthode)
Objet. C'est fondamentalement la même chose que ===. La différence est que l'un est que +0
n'est pas égal à -0
, et l'autre est que NaN
est égal à lui-même
// es5实现Object.isObject.defineProperty(Object, 'is', { value: function(x, y) {if (x === y) { // 针对+0 不等于 -0的情况 return x !== 0 || 1 / x === 1 / y; }// 针对NaN的情况return x !== x && y !== y; }, configurable: true, enumerable: false, writable: true});
Object.assign(target, o1, o2) est utilisé pour fusionner des objets avec le même nom, les précédentes seront écrasées plus tard ; la copie superficielle implémentée
ne peut pas. être convertis en raison d'undefined et null en objets, donc s'ils sont utilisés comme paramètres, une erreur sera signalée
La méthode Object.getOwnPropertyDescriptor peut obtenir l'objet de description de cette propriété ;
Parcours des propriétés :
for...in, Object.keys, Object.getOwnPropertyNames(obj), Object.getOwnPropertySymbols(obj), Reflect.ownKeys(obj)
__proto__ a la même fonction que Object.setPrototypeOf(), utilisée pour définir l'objet prototype d'un objet, Object.getPrototypeOf()
Object.keys(), Object.values(), Object.entries()
Object.getOwnPropertyDescriptors renvoie l'objet de description de toutes ses propres propriétés (propriétés non héritées) du spécifié objet
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!