ES5 JavaScript
- Page précédente Version JS
- Page suivante JS 2015 (ES6)
Qu'est-ce que ECMAScript 5 ?
ECMAScript 5 也称为 ES5 和 ECMAScript 2009。
本章介绍 ES5 的一些最重要的特性。
ECMAScript 5 特性
这些是 2009 年发布的新特性:
- "use strict" 指令
- String.trim()
- Array.isArray()
- Array.forEach()
- Array.map()
- Array.filter()
- Array.reduce()
- Array.reduceRight()
- Array.every()
- Array.some()
- Array.indexOf()
- Array.lastIndexOf()
- JSON.parse()
- JSON.stringify()
- Date.now()
- Getter et setter des propriétés
- Nouvelles propriétés et méthodes d'objet
ECMAScript 5 语法更改
- 对字符串的属性访问 [ ]
- 数组和对象字面量中的尾随逗号
- 多行字符串字面量
- 作为属性名称的保留字
"use strict" 指令
"use strict
" 定义 JavaScript 代码应该以“严格模式”执行。
例如,使用严格模式,不能使用未声明的变量。
您可以在所有程序中使用严格模式。它可以帮助您编写更清晰的代码,例如阻止您使用未声明的变量。
"use strict
” 只是一个字符串表达式。旧浏览器如果不理解它们就不会抛出错误。
请阅读 JS 严格模式 中的更多内容。
String.trim()
String.trim()
删除字符串两端的空白字符。
Exemple
var str = " Hello World! "; alert(str.trim());
Veuillez Méthodes de chaîne JS 中阅读更多内容。
Array.isArray()
isArray()
方法检查对象是否为数组。
Exemple
function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }
Veuillez JS 数组 中阅读更多内容。
Array.forEach()
forEach()
方法为每个数组元素调用一次函数。
Exemple
var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) { txt = txt + value + "<br>"; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.map()
这个例子给每个数组值乘以 2:
Exemple
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) { return value * 2; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.filter()
此例用值大于 18 的元素创建一个新数组:
Exemple
var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.reduce()
这个例子确定数组中所有数的总和:
Exemple
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.reduceRight()
Cet exemple est également pour déterminer la somme de tous les nombres dans le tableau :
Exemple
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) { return total + value; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.every()
Cet exemple vérifie si toutes les valeurs sont supérieures à 18 :
Exemple
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) { return value > 18; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.some()
Cet exemple vérifie si certains valeurs sont supérieures à 18 :
Exemple
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) { return value > 18; }
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
Array.indexOf()
Recherche de la valeur d'un élément dans le tableau et retour de sa position :
Exemple
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");
Veuillez Méthodes d'itération de tableau JSPour en savoir plus, consultez
Array.lastIndexOf()
Array.lastIndexOf()
et Array.indexOf()
De même, mais en commençant par la fin du tableau.
Exemple
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");
Veuillez Méthodes d'itération de tableau JS Pour en savoir plus, consultez
JSON.parse()
Une utilisation courante du JSON est de recevoir des données d'un serveur Web.
Imaginez que vous recevez cette chaîne de texte du serveur Web :
'{"name":"Bill", "age":62, "city":"Seatle"}'
Fonctions JavaScript JSON.parse()
Utilisée pour convertir du texte en objet JavaScript :
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
Veuillez consulter notre Tutoriel JSON Pour en savoir plus, consultez
JSON.stringify()
Une utilisation courante du JSON est d'envoyer des données à un serveur Web.
Lorsque vous envoyez des données à un serveur Web, les données doivent être sous forme de chaîne.
Imaginez, nous avons cet objet en JavaScript :
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
Veuillez utiliser la fonction JavaScript JSON.stringify() pour la convertir en chaîne.
var myJSON = JSON.stringify(obj);
Le résultat sera une chaîne suivant la syntaxe JSON.
myJSON est maintenant une chaîne, prête à être envoyée au serveur :
Exemple
var obj = {"name":"Bill", "age":62, "city":"Seatle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
Veuillez consulter notre Tutoriel JSON Pour en savoir plus, consultez
Date.now()
Date.now() renvoie le nombre de millisecondes écoulées depuis la date zéro (1er janvier 1970 00:00:00:00).
Exemple
var timInMSs = Date.now();
Date.now()
renvoie le même résultat que l'exécution de getTime() sur un objet Date.
Veuillez JS Date Pour en savoir plus.
Getter et setter des propriétés
ES5 vous permet de définir des méthodes d'objet en utilisant une syntaxe similaire à celle de la récupération ou de la définition des propriétés.
Cet exemple crée une propriété nommée fullName getter:
Exemple
// Créer un objet : var person = { firstName: "Bill", lastName : "Gates" get fullName() { return this.firstName + " " + this.lastName; } }); // Utilisez un getter pour afficher les données provenant de l'objet : document.getElementById("demo").innerHTML = person.fullName;
Cet exemple crée un setter et getter:
Exemple
var person = { firstName: "Bill", lastName : "Gates" language : "NO", get lang() { return this.language; }, set lang(value) { this.language = value; } }); // Utilisez un setter pour définir une propriété de l'objet : person.lang = "en"; // Utilisez un getter pour afficher les données provenant de l'objet : document.getElementById("demo").innerHTML = person.lang;
Cet exemple utilise un setter pour s'assurer que la mise à jour de la langue est en majuscules :
Exemple
var person = { firstName: "Bill", lastName : "Gates" language : "NO", set lang(value) { this.language = value.toUpperCase(); } }); // Utilisez un setter pour définir une propriété de l'objet : person.lang = "en"; // Affichez les données provenant de l'objet : document.getElementById("demo").innerHTML = person.language;
Veuillez Accesseurs d'objet JS Pour en savoir plus sur les getters et les setters, consultez.
Nouvelles propriétés et méthodes d'objet
Object.defineProperty()
C'est une nouvelle méthode d'objet dans ES5.
Cela vous permet de définir les propriétés de l'objet et/ou de modifier les valeurs et/ou les métadonnées des propriétés.
Exemple
// Créer un objet : var person = { firstName: "Bill", lastName : "Gates" language : "NO", }); // Changer la propriété : Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : true, configurable : true }); // Enumérer les propriétés var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Dans l'exemple suivant, le code est le même, mais l'attribut de langue est caché dans l'enumeration :
Exemple
// Créer un objet : var person = { firstName: "Bill", lastName : "Gates" language : "NO", }); // Changer la propriété : Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : false, configurable : true }); // Enumérer les propriétés var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Cet exemple crée un setter et un getter pour s'assurer que la mise à jour de la langue est en majuscules :
Exemple
// Créer un objet : var person = { firstName: "Bill", lastName : "Gates" language : "NO" }); // Changer la propriété : Object.defineProperty(person, "language", { get : function() { return language }, set : function(value) { language = value.toUpperCase()} }); // Changer la langue person.language = "en"; // Afficher la langue document.getElementById("demo").innerHTML = person.language;
Nouvelles méthodes d'objet ES5
ECMAScript 5 a ajouté de nombreux nouveaux méthodes d'objet pour JavaScript :
// Ajouter ou modifier une propriété d'objet Object.defineProperty(object, property, descriptor) // Ajouter ou modifier plusieurs propriétés d'objet Object.defineProperties(object, descriptors) // Accéder à la propriété Object.getOwnPropertyDescriptor(object, property) // Retourner toutes les propriétés sous forme d'array Object.getOwnPropertyNames(object) // Retourner les propriétés enumerables sous forme d'array Object.keys(object) // Accéder à l'original Object.getPrototypeOf(object) // 防止向对象添加属性 Object.preventExtensions(object) // 如果可以将属性添加到对象,则返回 true // Empêche l'ajout de propriétés à l'objet // Si l'objet peut avoir des propriétés ajoutées, retourne true // Empêche l'ajout de propriétés à l'objet // Empêche l'ajout de propriétés à l'objet // Empêche la modification des propriétés de l'objet (et non des valeurs) // Si l'objet est scellé, retourne true // Empêche toute modification de l'objet // Si l'objet est gelé, retourne true Object.isFrozen(object)
Veuillez Objet ECMAScript5 Pour en savoir plus, consultez
L'accès aux propriétés des chaînes
charAt()
La méthode retourne le caractère à l'indice (position) spécifié dans la chaîne :
Exemple
var str = "HELLO WORLD"; str.charAt(0); // Retourne H
ECMAScript 5 permet l'accès aux propriétés des chaînes :
Exemple
var str = "HELLO WORLD"; str[0]; // Retourne H
L'accès aux propriétés des chaînes peut être un peu imprévisible.
Veuillez Méthodes de chaîne JS Pour en savoir plus, consultez
Virgules en fin de ligne (Trailing Commas)
ECMAScript 5 permet l'utilisation des virgules en fin de ligne dans les définitions d'objets et d'arrays :
Instance d'Object
person = { firstName: "Bill", lastName: " Gates", age: 62, }
Instance d'Array
points = [ 1, 5, 10, 25, 40, 100, ];
Attention !!
Internet Explorer 8 va planter.
JSON n'autorise pas les virgules en fin de ligne.
Objet JSON :
// 允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62}' JSON.parse(person) // 不允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,}' JSON.parse(person)
Tableau de JSON :
// 允许: points = [40, 100, 1, 5, 25, 10] // 不允许: points = [40, 100, 1, 5, 25, 10,]
Chaînes de caractères multilignes
Si vous utilisez des的反斜杠 pour échapper, ECMAScript 5 permet des chaînes de caractères multilignes (littéraux) :
Exemple
"Hello \ Kitty!";
La méthode \ peut ne pas être supportée universellement.
Les navigateurs plus anciens peuvent traiter différemment les espaces autour des的反斜杠.
Certains navigateurs anciens ne permettent pas d'espaces après le caractères \ .
Une méthode plus sécurisée pour décomposer une chaîne de caractères est d'utiliser l'ajout de chaînes :
Exemple
"Hello " + "Kitty!";
Mots réservés en tant que noms d'attribut
ECMAScript 5 permet d'utiliser des mots réservés comme noms d'attribut :
Exemple d'objet
var obj = {name: "Bill", new: "yes"}
Support du navigateur pour ES5 (ECMAScript 5)
Chrome 23, IE 10 et Safari 6 sont les premiers navigateurs à prendre en charge pleinement ECMAScript 5 :
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
Septembre 2012 | Septembre 2012 | Avril 2013 | Juillet 2012 | Juillet 2013 |
- Page précédente Version JS
- Page suivante JS 2015 (ES6)