JavaScript-ES5
- Edellinen sivu JS-versio
- Seuraava sivu JS 2015 (ES6)
Mikä on ECMAScript 5?
ECMAScript 5 tunnetaan myös nimellä ES5 ja ECMAScript 2009.
Tämä luku esittelee ES5:n tärkeimmät ominaisuudet.
ECMAScript 5 -ominaisuudet
Nämä ovat vuonna 2009 julkistetut uudet ominaisuudet:
- "use strict" ohje
- 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()
- Ominaisuudet Getter ja Setter
- Uudet objekti-ominaisuudet ja -metodit
ECMAScript 5 -syntaksimuutokset
- Merkkijonon ominaisuuksien pääsy [ ]
- Taulukko- ja objektilausekkeiden jälkikommat
- Moniriviset merkkijonoesitykset
- Varattu sanastot
"use strict" ohje
"use strict
"
Esimerkiksi tiukassa moodissa ei voi käyttää määrittelemättömiä muuttujia.
Voit käyttää tiukkaa moodia kaikissa ohjelmointityyleissä. Se auttaa sinua kirjoittamaan selkeämmän koodia, esimerkiksi estämällä sinua käyttämästä määrittelemättömiä muuttujia.
"use strict
"Tämä on vain merkkijonoesitys. Vanhat selaimet, jotka eivät ymmärrä niitä, eivät heitä virhettä."
Lue lisää JS tiukka moodi Lue lisää tästä.
String.trim()
String.trim()
Poista merkkijonon molemmat reunat tyhjät merkit.
Esimerkki
var str = " Hello World! "; alert(str.trim());
Ole hyvä ja JS-merkkijonomenetelmät Lue lisää tästä.
Array.isArray()
isArray()
Metodi tarkistaa, onko objekti taulukko.
Esimerkki
function myFunction() { var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = document.getElementById("demo"); x.innerHTML = Array.isArray(fruits); }
Ole hyvä ja JS-taulukot Lue lisää tästä.
Array.forEach()
forEach()
Metodi kutsuu kerran funktiota jokaiselle taulukon elementille.
Esimerkki
var txt = ""; var numbers = [45, 4, 9, 16, 25]; numbers.forEach(myFunction); function myFunction(value) { txt = txt + value + "<br>"; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.map()
Tässä esimerkissä jokainen taulukon arvo kertataan kahdella:
Esimerkki
var numbers1 = [45, 4, 9, 16, 25]; var numbers2 = numbers1.map(myFunction); function myFunction(value) { return value * 2; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.filter()
Tässä esimerkissä luodaan uusi taulukko arvojen, jotka ovat suurempia kuin 18:
Esimerkki
var numbers = [45, 4, 9, 16, 25]; var over18 = numbers.filter(myFunction); function myFunction(value) { return value > 18; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.reduce()
Tämä esimerkki määrittää taulukon kaikkien lukujen summan:
Esimerkki
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduce(myFunction); function myFunction(total, value) { return total + value; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.reduceRight()
Tämä esimerkki määrittää samoin taulukon kaikkien lukujen summan:
Esimerkki
var numbers1 = [45, 4, 9, 16, 25]; var sum = numbers1.reduceRight(myFunction); function myFunction(total, value) { return total + value; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.every()
Tämä esimerkki tarkistaa, ovatko kaikki arvot yli 18:
Esimerkki
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.every(myFunction); function myFunction(value) { return value > 18; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.some()
Tämä esimerkki tarkistaa, ovatko jotkut arvot yli 18:
Esimerkki
var numbers = [45, 4, 9, 16, 25]; var allOver18 = numbers.some(myFunction); function myFunction(value) { return value > 18; }
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
Array.indexOf()
Etsitään taulukon tiettyä elementin arvoa ja palautetaan sen sijainti:
Esimerkki
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple");
Ole hyvä ja JS-taulukon iteraatiomenetelmätLisätietoja.
Array.lastIndexOf()
Array.lastIndexOf()
ja Array.indexOf()
Samankaltainen, mutta alkuperäisestä taulukon päästä alkaen.
Esimerkki
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple");
Ole hyvä ja JS-taulukon iteraatiomenetelmät Lisätietoja.
JSON.parse()
JSON yleinen käyttötarkoitus on vastaanottaa tietoja Web-palvelimelta。
Kuvitellaan, että saat tämän tekstituloksen Web-palvelimelta:
'{"name":"Bill", "age":62, "city":"Seatle"}'
JavaScript funktio JSON.parse()
Käytetään tekstin muuntamiseen JavaScript-objektiksi:
var obj = JSON.parse('{"name":"Bill", "age":62, "city":"Seatle"}');
Ole hyvä ja vieraile JSON-opas Lisätietoja.
JSON.stringify()
JSON yleinen käyttötarkoitus on lähettää tietoja Web-palvelimelle。
Tiedot lähetettäessä Web-palvelimelle, ne täytyy olla merkkijonona。
Kuvitellaan, että meillä on tämä objekti JavaScriptissä:
var obj = {"name":"Bill", "age":62, "city":"Seatle"};
Käytä JavaScript-funktiota JSON.stringify() muuntaaksesi sen merkkijonoksi。
var myJSON = JSON.stringify(obj);
Tuloksena on merkkijono, joka noudattaa JSON-esittelyä。
myJSON nyt on merkkijono, valmis lähetettäväksi palvelimelle:
Esimerkki
var obj = {"name":"Bill", "age":62, "city":"Seatle"}; var myJSON = JSON.stringify(obj); document.getElementById("demo").innerHTML = myJSON;
Ole hyvä ja vieraile JSON-opas Lisätietoja.
Date.now()
Date.now() palauttaa millisekuntien määrän päivämäärästä nollapäivästä (1. tammikuuta 1970 00:00:00:00) lähtien.
Esimerkki
var timInMSs = Date.now();
Date.now()
palauttaa saman kuin Date-objektin getTime()-menetelmän suorittaminen.
Ole hyvä ja JS-päivämäärä Lue lisää tästä.
Ominaisuudet Getter ja Setter
ES5 sallii sinun määrittää objektitavat käyttämällä samanlaista syntaksia kuin ominaisuuksien hakeminen tai asettaminen.
Tämä esimerkki luo ominaisuuden nimeltä fullName: getter:
Esimerkki
// Luo objekti: var person = { firstName: "Bill", lastName : "Gates", get fullName() { return this.firstName + " " + this.lastName; } }); // Käytä getteriä näyttääksesi tietoja objektista: document.getElementById("demo").innerHTML = person.fullName;
Tämä esimerkki luo setter ja getter:
Esimerkki
var person = { firstName: "Bill", lastName : "Gates", language : "NO", get lang() { return this.language; }, set lang(value) { this.language = value; } }); // Käytä setteriä asettaaksesi objektin ominaisuuden: person.lang = "en"; // Käytä getteriä näyttääksesi tietoja objektista: document.getElementById("demo").innerHTML = person.lang;
Tämä esimerkki käyttää setteriä varmistaakseen, että kieli on isokirjain:
Esimerkki
var person = { firstName: "Bill", lastName : "Gates", language : "NO", set lang(value) { this.language = value.toUpperCase(); } }); // Käytä setteriä asettaaksesi objektin ominaisuuden: person.lang = "en"; // Näytä tietoja objektista: document.getElementById("demo").innerHTML = person.language;
Ole hyvä ja JS-objektin käsittelijät Lue lisää gettereista ja settereista tästä.
Uudet objekti-ominaisuudet ja -metodit
Object.defineProperty()
on uusi objekti-metodi ES5:ssä.
Se mahdollistaa objektin ominaisuuksien ja/tai ominaisuuksien arvojen ja/tai metaatujen määrittämisen.
Esimerkki
// Luo objekti: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Muuta ominaisuutta: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : true, configurable : true }); // Lajittele ominaisuudet var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
Seuraava esimerkki on samaa koodia, mutta se piilottaa luettelossa olevan kielen ominaisuuden:
Esimerkki
// Luo objekti: var person = { firstName: "Bill", lastName : "Gates", language : "NO", }); // Muuta ominaisuutta: Object.defineProperty(person, "language", { value: "EN", writable : true, enumerable : false, configurable : true }); // Lajittele ominaisuudet var txt = ""; for (var x in person) { txt += person[x] + "<br>"; } document.getElementById("demo").innerHTML = txt;
// Tämä esimerkki luo setterin ja getterin varmistaakseen, että kieli päivitetään isolla kirjaimella:
Esimerkki
// Luo objekti: var person = { firstName: "Bill", lastName : "Gates", language : "NO" }); // Muuta ominaisuutta: Object.defineProperty(person, "language", { get : function() { return language }, set : function(value) { language = value.toUpperCase()} }); // Muuta kieltä person.language = "en"; // Näytä kieli document.getElementById("demo").innerHTML = person.language;
ES5:n uudet objektimenetelmät
ECMAScript 5 lisää monta uutta objektimenetelmää JavaScriptille:
// Lisää tai muuta objektin ominaisuutta Object.defineProperty(object, property, descriptor) // Lisää tai muuta useita objektin ominaisuuksia Object.defineProperties(object, descriptors) // Käynti ominaisuuden Object.getOwnPropertyDescriptor(object, property) // Palauttaa kaikki ominaisuudet taulukkomuodossa Object.getOwnPropertyNames(object) // Palauttaa luettavissa olevat ominaisuudet taulukkomuodossa Object.keys(object) // Käynti prototyypin Object.getPrototypeOf(object) // Estää ominaisuuksien lisäämisen objektiin Object.preventExtensions(object) // Jos ominaisuuksia voidaan lisätä objektiin, palauttaa true Object.isExtensible(object) // Estää objektin ominaisuuksien muuttamisen (ei arvoja) Object.seal(object) // Jos objekti on suljettu, palauttaa true Object.isSealed(object) // Estää objektin muuttamisen Object.freeze(object) // Jos objekti on jäädytetty, palauttaa true Object.isFrozen(object)
Ole hyvä ja ECMAScript5-objekti Lisätietoja.
Merkkijonon ominaisuuksien pääsy
charAt()
Metodi palauttaa merkkijonon määritetyn indeksin (sijainnin) merkin:
Esimerkki
var str = "HELLO WORLD"; str.charAt(0); // Palauttaa H
ECMAScript 5 sallii merkkijonon ominaisuuksien pääsyn:
Esimerkki
var str = "HELLO WORLD"; str[0]; // Palauttaa H
merkkijonon ominaisuuksien pääsy voi olla hieman ennustamaton.
Ole hyvä ja JS-merkkijonomenetelmät Lisätietoja.
Peräviivaa pilkkuja(Trailing Commas)
ECMAScript 5 sallii peräviivaa pilkkuja objektien ja taulukkojen määrittämisessä:
Object-esimerkki
person = { firstName: "Bill", lastName: "Gates", age: 62, }
Array-esimerkki
pisteet = [ 1, 5, 10, 25, 40, 100, ];
Varoitus!!!
Internet Explorer 8 kaatuu.
JSON ei salli peräviivaa pilkkuja.
JSON-objekti:
// 允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,}' JSON.parse(person) // 不允许: var person = '{"firstName":"Bill", "lastName":"Gates", "age":62,}' JSON.parse(person)
JSON-taulukko:
// 允许: pisteet = [40, 100, 1, 5, 25, 10,] // 不允许: pisteet = [40, 100, 1, 5, 25, 10,]
Useiden rivien merkkijono
Jos käytetään backslashia välttämään, ECMAScript 5 sallii useita rivejä merkkijonon teksteissä (lausekkeissa):
Esimerkki
"Hello \ Kitty!";
Backslash-metodi ei ehkä ole yleisesti tuettu.
Vanhemmat selaimet saattavat käsitellä välilyöntiä backslashin ympärillä eri tavoin.
Jotkut vanhat selaimet eivät salli välilyöntiä backslashin jälkeen.
Yksinkertaisempi ja turvallisempi tapa hajottaa merkkijono on käyttää merkkijonon lisäämistä:
Esimerkki
"Hello " + "Kitty!";
Säilytetyt sanat niminä
ECMAScript 5 sallii säilyttää sanat niminä:
Objekti-esimerkki
var obj = {name: "Bill", new: "yes"}
ES5 (ECMAScript 5) -selaimen tuki
Chrome 23, IE 10 ja Safari 6 ovat ensimmäiset selaimet, jotka tukevat täysin ECMAScript 5:ää:
Chrome 23 | IE10 / Edge | Firefox 21 | Safari 6 | Opera 15 |
syyskuu 2012 | syyskuu 2012 | huhtikuu 2013 | Heinäkuu 2012 | Heinäkuu 2013 |
- Edellinen sivu JS-versio
- Seuraava sivu JS 2015 (ES6)