JavaScript ES5
- Forrige side JS version
- Næste side JS 2015 (ES6)
Hvad er ECMAScript 5?
ECMAScript 5 kaldes også ES5 og ECMAScript 2009.
Dette kapitel introducerer nogle af de vigtigste funktioner i ES5.
ECMAScript 5 funktioner
Disse er nye funktioner, der blev offentliggjort i 2009:
- "use strict" instruktion
- 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()
- Egenskabs Getter og Setter
- nye objekt egenskaber og metoder
ECMAScript 5语法更改
- Egenskabsadgang til strenge [ ]
- Trailing commas i array- og objektliterals
- Multilinje strengliterals
- Reserverede ord som attributnavne
"use strict" instruktion
"use strict
"Definerer, at JavaScript-kode skal køres i Strict Mode."
For eksempel kan du ikke bruge udeklarede variabler i Strict Mode.
Du kan bruge Strict Mode i alle dine programmer. Det hjælper dig med at skrive klarere kode, f.eks. forhindre dig i at bruge udeklarede variabler.
"use strict
"Det er kun en strengudtryk. Gamle browsere, der ikke forstår dem, vil ikke kaste fejl."
Læs venligst JS Strict Mode Læs mere her.
String.trim()
String.trim()
Fjerner blanke tegn fra begge sider af strengen.
Eksempel
var str = " Hello World! "; alert(str.trim());
请在 JS 字符串方法 Læs mere her.
Array.isArray()
isArray()
Metoden tjekker om objektet er et array.
Eksempel
function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }
请在 JS Array Læs mere her.
Array.forEach()
forEach()
Metoden kaldes én gang for hvert element i arrayet.
Eksempel
var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) { txt = txt + value + "<br>"; }
请在 JS array iteration metoder 中学习更多内容。
Array.map()
Dette eksempel multiplicerer hver værdi i arrayet med 2:
Eksempel
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) { return value * 2; }
请在 JS array iteration metoder 中学习更多内容。
Array.filter()
Dette eksempel opretter en ny array med elementer med værdier større end 18:
Eksempel
var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; }
请在 JS array iteration metoder 中学习更多内容。
Array.reduce()
Denne eksemplet bestemmer summen af alle tal i arrayet:
Eksempel
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
请在 JS array iteration metoder 中学习更多内容。
Array.reduceRight()
Dette eksempel er også til at bestemme summen af alle tal i arrayet:
Eksempel
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) { return total + value; }
请在 JS array iteration metoder 中学习更多内容。
Array.every()
Dette eksempel tjekker, om alle værdier overstiger 18:
Eksempel
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) { return value > 18; }
请在 JS array iteration metoder 中学习更多内容。
Array.some()
Dette eksempel tjekker, om nogle værdier overstiger 18:
Eksempel
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) { return value > 18; }
请在 JS array iteration metoder 中学习更多内容。
Array.indexOf()
Søger efter en bestemt elementværdi i arrayet og returnerer dens position:
Eksempel
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");
请在 JS array iteration metoder中学习更多内容。
Array.lastIndexOf()
Array.lastIndexOf()
med Array.indexOf()
Lignende, men søger fra arrayets ende ud.
Eksempel
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");
请在 JS array iteration metoder 中学习更多内容。
JSON.parse()
En almindelig anvendelse af JSON er at modtage data fra en webserver。
Forestil dig, at du modtager denne tekststreng fra en webserver:
'{"name":"Bill", "age":62, "city":"Seatle"}'
JavaScript funktion JSON.parse()
Bruges til at konvertere tekst til et JavaScript-objekt:
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
venligst besøg vores JSON vejledning 中学习更多内容。
JSON.stringify()
En almindelig anvendelse af JSON er at sende data til en webserver。
Når data sendes til en webserver, skal dataene være en streng。
Forestil dig, at vi har dette objekt i JavaScript:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
Brug JavaScript-funktionen JSON.stringify() til at konvertere den til en streng。
var myJSON = JSON.stringify(obj);
Resultatet vil være en streng, der følger JSON-repræsentationen。
myJSON er nu en streng, klar til at sendes til serveren:
Eksempel
var obj = {"name":"Bill", "age":62, "city":"Seatle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
venligst besøg vores JSON vejledning 中学习更多内容。
Date.now()
Date.now() returnerer millisekunder siden den 1. januar 1970 kl. 00:00:00:00.
Eksempel
var timInMSs = Date.now();
Date.now()
s returnerer det samme som resultatet af at køre getTime() på Date-objektet.
请在 JS dato for at lære mere.
Egenskabs Getter og Setter
ES5 giver dig mulighed for at definere objektmetoder ved hjælp af syntaks, der ligner at få fat i eller sætte egenskaber.
Dette eksempel opretter en getter:
Eksempel
// Opret objekt: var person = { firstName: "Bill", lastName : "Gates", get fullName() { return this.firstName + " " + this.lastName; } }); // Brug getter til at vise data fra objektet: document.getElementById("demo").innerHTML = person.fullName;
Dette eksempel opretter en setter og en getter:
Eksempel
var person = { firstName: "Bill", lastName : "Gates", language : "NO", get lang() { return this.language; }, set lang(value) { this.language = value; } }); // Brug setter til at sætte objektets egenskab: person.lang = "en"; // Brug getter til at vise data fra objektet: document.getElementById("demo").innerHTML = person.lang;
Dette eksempel bruger setter til at sikre, at sprogets store bogstaver opdateres:
Eksempel
var person = { firstName: "Bill", lastName : "Gates", language : "NO", set lang(value) { this.language = value.toUpperCase(); } }); // Brug setter til at sætte objektets egenskab: person.lang = "en"; // Vis data fra objektet: document.getElementById("demo").innerHTML = person.language;
请在 JS objekt tilgangere for at lære mere om Getter og Setter.
nye objekt egenskaber og metoder
Object.defineProperty()
er en ny objektmetode i ES5.
det giver dig mulighed for at definere objektets egenskaber og/eller ændre værdierne og/eller metadata for egenskaber.
Eksempel
// Opret objekt: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Ændr egenskab: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable: true, configurable : true }); // Enumerér egenskaber var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Næste eksempel er samme kode, men det skjuler sprogegenskaben i enumerationen:
Eksempel
// Opret objekt: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Ændr egenskab: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : false, configurable : true }); // Enumerér egenskaber var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
// Dette eksempel opretter en setter og getter for at sikre, at sproget opdateres med store bogstaver:
Eksempel
// Opret objekt: var person = { firstName: "Bill", lastName : "Gates", language : "NO" }); // Ændr egenskab: Object.defineProperty(person, "language", { get : function() { return language }, set : function(value) { language = value.toUpperCase()} }); // Ændr sprog person.language = "en"; // Vis sprog document.getElementById("demo").innerHTML = person.language;
Nye objektmetoder i ES5
ECMAScript 5 tilføjede mange nye objektmetoder til JavaScript:
// Tilføj eller ændr objektegenskab Object.defineProperty(object, property, descriptor) // Tilføj eller ændr flere objektegenskaber Object.defineProperties(object, descriptors) // Tilgang til egenskab Object.getOwnPropertyDescriptor(object, property) // Returnerer alle egenskaber som en array Object.getOwnPropertyNames(object) // Returnerer enummerbare egenskaber som en array Object.keys(object) // Tilgang til prototype Object.getPrototypeOf(object) // 防止向对象添加属性 Object.preventExtensions(object) // 如果可以将属性添加到对象,则返回 true Object.isExtensible(object) // 防止更改对象属性(而不是值) Object.seal(object) // 如果对象被密封,则返回 true Object.isSealed(object) // 防止对对象进行任何更改 Object.freeze(object) // 如果对象被冻结,则返回 true Object.isFrozen(object)
请在 对象 ECMAScript5 中学习更多内容。
对字符串的属性访问
charAt()
方法返回字符串中指定索引(位置)的字符:
Eksempel
var str = "HELLO WORLD"; str.charAt(0); // 返回 H
ECMAScript 5 允许对字符串进行属性访问:
Eksempel
var str = "HELLO WORLD"; str[0]; // 返回 H
对字符串的属性访问可能有点不可预测。
请在 JS 字符串方法 中学习更多内容。
尾随逗号(Trailing Commas)
ECMAScript 5 允许在对象和数组定义中使用尾随逗号:
Object 实例
person = { firstName: "Bill", lastName: "Gates", age: 62, }
Array 实例
points = [ 1, 5, 10, 25, 40, 100, ];
警告!!!
Internet Explorer 8 将崩溃。
JSON 不允许使用尾随逗号。
JSON 对象:
// 允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62}' JSON.parse(person) // 不允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,}' JSON.parse(person)
JSON 数组:
// 允许: points = [40, 100, 1, 5, 25, 10] // 不允许: points = [40, 100, 1, 5, 25, 10,]
Multilinje streng
Hvis du bruger omvendt skråstreg som flugt, tillader ECMAScript 5 multiline strengtekst (literals):
Eksempel
"Hello \ Kitty!";
Metoden \ kan muligvis ikke have bred støtte.
Ældre browsere kan behandle mellemrum omkring omvendt skråstreg på forskellig måde.
Nogle gamle browsere tillader ikke mellemrum efter \-tegnet.
En mere sikker måde at analysere strengtekst på er ved at bruge strengføjning:
Eksempel
"Hello " + "Kitty!";
Reserverede ord som egenskabsnavne
ECMAScript 5 tillader reserverede ord som egenskabsnavne:
Objekt eksempel
var obj = {name: "Bill", new: "yes"}
ES5 (ECMAScript 5) browserunderstøttelse
Chrome 23, IE 10 og Safari 6 var de første browsere, der fuldt ud understøttede ECMAScript 5:
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
September 2012 | September 2012 | April 2013 | Juli 2012 | Juli 2013 |
- Forrige side JS version
- Næste side JS 2015 (ES6)