JavaScript ES5
- Vorige pagina JS Versie
- Volgende pagina JS 2015 (ES6)
Wat is 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()
- Eigenschap getters en setters
- Nieuwe objecteigenschappen en methoden
ECMAScript 5 语法更改
- 对字符串的属性访问 [ ]
- 数组和对象字面量中的尾随逗号
- 多行字符串字面量
- 作为属性名称的保留字
"use strict" 指令
"use strict
" 定义 JavaScript 代码应该以“严格模式”执行。
例如,使用严格模式,不能使用未声明的变量。
您可以在所有程序中使用严格模式。它可以帮助您编写更清晰的代码,例如阻止您使用未声明的变量。
"use strict
” 只是一个字符串表达式。旧浏览器如果不理解它们就不会抛出错误。
请阅读 JS 严格模式 中的更多内容。
String.trim()
String.trim()
删除字符串两端的空白字符。
Voorbeeld
var str = " Hello World! "; alert(str.trim());
Graag in: JS-stringsmethoden 中阅读更多内容。
Array.isArray()
isArray()
方法检查对象是否为数组。
Voorbeeld
function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }
Graag in: JS 数组 中阅读更多内容。
Array.forEach()
forEach()
方法为每个数组元素调用一次函数。
Voorbeeld
var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) { txt = txt + value + "<br>"; }
Graag in: JS array iteratiemethoden Meer leren.
Array.map()
这个例子给每个数组值乘以 2:
Voorbeeld
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) { return value * 2; }
Graag in: JS array iteratiemethoden Meer leren.
Array.filter()
此例用值大于 18 的元素创建一个新数组:
Voorbeeld
var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; }
Graag in: JS array iteratiemethoden Meer leren.
Array.reduce()
这个例子确定数组中所有数的总和:
Voorbeeld
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
Graag in: JS array iteratiemethoden Meer leren.
Array.reduceRight()
Deze voorbeeld is dezelfde als het bepalen van de som van alle getallen in de array:
Voorbeeld
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) { return total + value; }
Graag in: JS array iteratiemethoden Meer leren.
Array.every()
Deze voorbeeld controleert of alle waarden hoger zijn dan 18:
Voorbeeld
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) { return value > 18; }
Graag in: JS array iteratiemethoden Meer leren.
Array.some()
Deze voorbeeld controleert of sommige waarden hoger zijn dan 18:
Voorbeeld
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) { return value > 18; }
Graag in: JS array iteratiemethoden Meer leren.
Array.indexOf()
Zoek naar een elementwaarde in de array en retourneer zijn positie:
Voorbeeld
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");
Graag in: JS array iteratiemethodenMeer leren.
Array.lastIndexOf()
Array.lastIndexOf()
en Array.indexOf()
Soortgelijk, maar begint aan de einde van de array te zoeken.
Voorbeeld
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");
Graag in: JS array iteratiemethoden Meer leren.
JSON.parse()
Een veelvoorkomende toepassing van JSON is het ontvangen van gegevens van een webserver.
Stel je voor dat je deze tekststring van een webserver ontvangt:
'{"name":"Bill", "age":62, "city":"Seatle"}'
Functies in JavaScript JSON.parse()
Gebruikt om tekst te converteren naar een JavaScript-object:
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
Raadpleeg onze JSON handleiding Meer leren.
JSON.stringify()
Een veelvoorkomende toepassing van JSON is het sturen van gegevens naar een webserver.
Wanneer je gegevens naar een webserver stuurt, moeten deze gegevens een string zijn.
Stel je voor dat we in JavaScript deze object hebben:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
Gebruik de JavaScript-functie JSON.stringify() om het te converteren naar een string.
var myJSON = JSON.stringify(obj);
Het resultaat zal een string zijn die volgt aan de JSON-representatie.
myJSON is nu een string, klaar om naar de server te worden verzonden:
Voorbeeld
var obj = {"name":"Bill", "age":62, "city":"Seatle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
Raadpleeg onze JSON handleiding Meer leren.
Date.now()
Date.now() retourneert het aantal milliseconden sinds de datum (1 januari 1970 00:00:00:00).
Voorbeeld
var timInMSs = Date.now();
Date.now()
heeft dezelfde returnwaarde als het uitvoeren van getTime() op een Date-object.
Graag in: JS datum leer meer.
Eigenschap getters en setters
ES5 staat je toe om objectmethoden te definiëren met een syntaxis vergelijkbaar met het ophalen of instellen van eigenschappen.
Deze voorbeeld maakt een eigenschap voor fullName aan: getter:
Voorbeeld
// Maak een object aan: var person = { firstName: "Bill", lastName : "Gates" get fullName() { return this.firstName + " " + this.lastName; } }); // Gebruik een getter om gegevens van het object weer te geven: document.getElementById("demo").innerHTML = person.fullName;
Deze voorbeeld maakt een setter en een getter:
Voorbeeld
var person = { firstName: "Bill", lastName : "Gates" language : "NO", get lang() { return this.language; }, set lang(value) { this.language = value; } }); // Gebruik een setter om objecteigenschappen in te stellen: person.lang = "en"; // Gebruik een getter om gegevens van het object weer te geven: document.getElementById("demo").innerHTML = person.lang;
Deze voorbeeld gebruikt een setter om ervoor te zorgen dat de taalhoogte bijgewerkt wordt:
Voorbeeld
var person = { firstName: "Bill", lastName : "Gates" language : "NO", set lang(value) { this.language = value.toUpperCase(); } }); // Gebruik een setter om objecteigenschappen in te stellen: person.lang = "en"; // Toon gegevens van het object: document.getElementById("demo").innerHTML = person.language;
Graag in: JS object accessors leer meer over getters en setters.
Nieuwe objecteigenschappen en methoden
Object.defineProperty()
is een nieuwe objectmethode in ES5.
Het staat je toe om objecteigenschappen te definiëren en/or de waarde en/or metadata van eigenschappen te wijzigen.
Voorbeeld
// Maak een object aan: var person = { firstName: "Bill", lastName : "Gates" language : "NO", }); // Verander eigenschap: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable: true; configurable : true }); // Enumereer eigenschappen var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
De volgende voorbeeld is hetzelfde code, maar het verbergt de eigenschap van de taal in de enumeratie:}
Voorbeeld
// Maak een object aan: var person = { firstName: "Bill", lastName : "Gates" language : "NO", }); // Verander eigenschap: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : false, configurable : true }); // Enumereer eigenschappen var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Deze voorbeeld maakt een setter en getter om ervoor te zorgen dat de taal in hoofdletters wordt bijgewerkt:
Voorbeeld
// Maak een object aan: var person = { firstName: "Bill", lastName : "Gates" language : "NO" }); // Verander eigenschap: Object.defineProperty(person, "language", { get : function() { return language }, set : function(value) { language = value.toUpperCase()} }); // Verander de taal person.language = "en"; // Toon de taal document.getElementById("demo").innerHTML = person.language;
Nieuwe objectmethoden in ES5
ECMAScript 5 voegt veel nieuwe objectmethoden toe aan JavaScript:
// Voeg of wijzig een objecteigenschap toe Object.defineProperty(object, property, descriptor) // Voeg of wijzig meerdere objecteigenschappen toe Object.defineProperties(object, descriptors) // Bereik de eigenschap Object.getOwnPropertyDescriptor(object, property) // Geef alle eigenschappen terug als een array Object.getOwnPropertyNames(object) // Geef de enumerable eigenschappen terug als een array Object.keys(object) // Bereik het prototype Object.getPrototypeOf(object) // Voorkomt het toevoegen van eigenschappen aan het object Object.preventExtensions(object) // Wordt true geretourneerd als eigenschappen aan het object kunnen worden toegevoegd Object.isExtensible(object) // Voorkomt wijzigingen aan de eigenschappen van het object (niet de waarden) Object.seal(object) // Als het object gesloten is, wordt true geretourneerd Object.isSealed(object) // Voorkomt elke wijziging aan het object Object.freeze(object) // Als het object gefreeze is, wordt true geretourneerd Object.isFrozen(object)
Graag in: Object ECMAScript5 Meer leren.
Eigenschapsbereik van strings
charAt()
De methode keert de letter terug op de opgegeven index (positie):
Voorbeeld
var str = "HELLO WORLD"; str.charAt(0); // Keert H terug
ECMAScript 5 staat eigenschapsbereik van strings toe:
Voorbeeld
var str = "HELLO WORLD"; str[0]; // Keert H terug
Het kan wat onvoorspelbaar zijn om eigenschappen van een string te bereiken.
Graag in: JS-stringsmethoden Meer leren.
Trailing komma's (Trailing Commas)
ECMAScript 5 staat trailing komma's toe in object- en arraydefinities:
Object-instantie
person = { firstName: "Bill", lastName: "Gates", age: 62, }
Array-instantie
points = [ 1, 5, 10, 25, 40, 100, ];
WAARSCHUWING!!!
Internet Explorer 8 zal crashen.
JSON staat geen trailing komma's toe.
JSON-object:
// Toegestaan: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,} JSON.parse(person) // Niet toegestaan: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,} JSON.parse(person)
JSON-array:
// Toegestaan: points = [40, 100, 1, 5, 25, 10] // Niet toegestaan: points = [40, 100, 1, 5, 25, 10,]
Meerdere regels string
Voorbeeld
"Hello \", Kitty!";
De backslash-methode wordt mogelijk niet algemeen ondersteund.
Oudere browsers kunnen de ruimte rond het backslash-teken op verschillende manieren behandelen.
Enkele oude browsers toestaan geen spaties achter het backslash-teken.
Een veiligere manier om te splitsen stringtekst is door het gebruik van string concatenatie:
Voorbeeld
"Hello " + "Kitty!";
Reservewoorden als eigenschapsnamen
ECMAScript 5 staat het gebruik van reservewoorden als eigenschapsnamen toe:
Object Voorbeeld
var obj = {name: "Bill", new: "yes"}
ES5 (ECMAScript 5) Browser Ondersteuning
Chrome 23, IE 10 en Safari 6 zijn de eerste browsers die ECMAScript 5 volledig ondersteunen:
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
September 2012 | September 2012 | April 2013 | Juli 2012 | Juli 2013 |
- Vorige pagina JS Versie
- Volgende pagina JS 2015 (ES6)