Samouczek JS

JS DOM Wprowadzenie do JS JS Dokąd Wyjście JS Oświadczenia JS Składnia JS Komentarze JS Zmienne JS JS Let JS Const Operatorzy JS Arytmetyka JS Zadanie JS Typy danych JS Funkcje JS Obiekty JS Wydarzenia JS JS Strings Metody ciągów JS Wyszukiwanie ciągów JS Szablony JS String Numery JS Metody liczbowe JS Tablice JS Metody macierzowe JS Sortowanie tablic JS Iteracja tablicy JS JS Array Const JS Daty Formaty daty JS JS Data Pobierz metody Metody ustawiania daty JS Matematyka JS JS losowo JS Booleans Porównania JS Warunki JS Przełącznik JS Pętla JS dla Pętla JS dla In Pętla JS dla Of Pętla JS, podczas gdy Przerwa JS Iterable JS Zestawy JS Mapy JS Typ JS Konwersja typu JS JS Bitwise JS RegExp Błędy JS Zakres JS JS Podnoszenie Tryb ścisły JS JS to słowo kluczowe Funkcja strzałki JS Klasy JS JS JSON Debugowanie JS Przewodnik po stylu JS Najlepsze praktyki JS Błędy JS Wydajność JS JS słowa zastrzeżone

Wersje JS

Wersje JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Krawędź Historia JS

Obiekty JS

Definicje obiektów Właściwości obiektu Metody obiektowe Wyświetlanie obiektów Akcesoria do obiektów Konstruktorzy obiektów Prototypy obiektów Iterowalne obiekty Zestawy obiektów Mapy obiektów Odniesienie do obiektu

Funkcje JS

Definicje funkcji Parametry funkcji Wywołanie funkcji Wywołanie funkcji Funkcja Zastosuj Zamknięcia funkcji

Klasy JS

Wprowadzenie do zajęć Dziedziczenie klas Klasa statyczna

JS Async

Oddzwaniania JS Asynchroniczny JS JS Obietnice JS Async/Oczekiwanie

JS HTML DOM

Wprowadzenie do DOM Metody DOM Dokument DOM Elementy DOM DOM HTML Formularze DOM DOM CSS Animacje DOM Wydarzenia DOM Odbiornik zdarzeń DOM Nawigacja DOM Węzły DOM Kolekcje DOM Listy węzłów DOM

Zestawienie komponentów przeglądarki JS

Okno JS Ekran JS Lokalizacja JS Historia JS JS Navigator Wyskakujący alert JS Czas JS Pliki cookie JS

JS Web API

Wprowadzenie do internetowego interfejsu API Interfejs API formularzy internetowych Interfejs API historii online API przechowywania danych w sieci Web Web Worker API Internetowy interfejs API pobierania Internetowy interfejs API geolokalizacji

JS AJAX

Wprowadzenie do AJAX AJAX XMLHttp Żądanie AJAX Odpowiedź AJAX Plik XML AJAX AJAX PHP ASP AJAX Baza danych AJAX Aplikacje AJAX Przykłady AJAX

JS JSON

Wprowadzenie do JSON Składnia JSON JSON a XML Typy danych JSON Analiza JSON JSON Obiekty JSON Tablice JSON Serwer JSON JSON PHP JSON HTML JSON JSONP

JS kontra jQuery

Selektory jQuery jQuery HTML jQuery CSS jQuery DOM

Grafika JS

Grafika JS JS płótno JS Działka JS Chart.js Wykres JS Google JS D3.js

Przykłady JS

Przykłady JS JS HTML DOM Wejście JS HTML Obiekty HTML JS Wydarzenia JS HTML Przeglądarka JS Edytor JS Ćwiczenia JS JS Quiz Certyfikat JS

Referencje JS

Obiekty JavaScript Obiekty HTML DOM


JavaScript ES5

ECMAScript 2009, znany również jako ES5, był pierwszą poważną wersją JavaScript.

Ten rozdział opisuje najważniejsze cechy ES5.

Funkcje ES5


Obsługa przeglądarki

ES5jest w pełni obsługiwany we wszystkich nowoczesnych przeglądarkach:

Chrome IE Edge Firefox Safari Opera
Yes 9.0 Yes Yes Yes Yes

Dyrektywa „ścisłe stosowanie”

"use strict"określa, że ​​kod JavaScript powinien być wykonywany w „trybie ścisłym”.

W trybie ścisłym możesz na przykład nie używać niezadeklarowanych zmiennych.

Możesz używać trybu ścisłego we wszystkich swoich programach. Pomaga pisać czystszy kod, na przykład uniemożliwiając używanie niezadeklarowanych zmiennych.

"use strict"to tylko wyrażenie tekstowe. Stare przeglądarki nie zgłoszą błędu, jeśli go nie zrozumieją.

Przeczytaj więcej w JS Strict Mode .


Dostęp do właściwości na ciągach

Metoda charAt()zwraca znak o określonym indeksie (pozycji) w ciągu znaków:

Przykład

var str = "HELLO WORLD";
str.charAt(0);            // returns H

ES5 umożliwia dostęp do właściwości w ciągach:

Przykład

var str = "HELLO WORLD";
str[0];                   // returns H

Dostęp do właściwości na łańcuchu może być trochę nieprzewidywalny.

Przeczytaj więcej w Metodach JS String .


Ciągi na wielu liniach

ES5 zezwala na literały ciągów w wielu wierszach, jeśli są one poprzedzane ukośnikiem odwrotnym:

Przykład

"Hello \
Dolly!";

Metoda \ może nie mieć uniwersalnego wsparcia.
Starsze przeglądarki mogą inaczej traktować spacje wokół ukośnika odwrotnego.
Niektóre starsze przeglądarki nie zezwalają na spacje za znakiem \.

Bezpieczniejszym sposobem na rozbicie literału napisowego jest użycie dodawania napisów:

Przykład

"Hello " +
"Dolly!";

Słowa zastrzeżone jako nazwy własności

ES5 dopuszcza słowa zastrzeżone jako nazwy właściwości:

Przykład obiektu

var obj = {name: "John", new: "yes"}

Przycinanie ciągów()

Metoda trim()usuwa białe znaki z obu stron ciągu.

Przykład

var str = "       Hello World!        ";
alert(str.trim());

Przeczytaj więcej w Metodach JS String .



Array.isArray()

Metoda isArray()sprawdza, czy obiekt jest tablicą.

Przykład

function myFunction() {
  var fruits = ["Banana", "Orange", "Apple", "Mango"];
  var x = document.getElementById("demo");
  x.innerHTML = Array.isArray(fruits);
}

Przeczytaj więcej w Tablice JS .


Tablica dla każdego()

Metoda forEach()wywołuje funkcję raz dla każdego elementu tablicy.

Przykład

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "<br>";
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Mapa tablicy()

W tym przykładzie każda wartość tablicy mnoży się przez 2:

Przykład

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Filtr tablicowy()

Ten przykład tworzy nową tablicę z elementów o wartości większej niż 18:

Przykład

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Zmniejszenie tablicy()

Ten przykład znajduje sumę wszystkich liczb w tablicy:

Przykład

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Zmniejszenie tablicyPrawo()

W tym przykładzie znajduje się również suma wszystkich liczb w tablicy:

Przykład

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Tablica co ()

Ten przykład sprawdza, czy wszystkie wartości przekraczają 18:

Przykład

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Tablica niektóre()

Ten przykład sprawdza, czy niektóre wartości są większe niż 18:

Przykład

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.some(myFunction);

function myFunction(value) {
  return value > 18;
}

Dowiedz się więcej w Metodach iteracji tablicy JS .


Indeks tablicy()

Wyszukaj w tablicy wartość elementu i zwróć jego pozycję.

Przykład

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

Dowiedz się więcej w Metodach iteracji tablicy JS .


Tablica lastIndexOf()

lastIndexOf()to to samo co indexOf(), ale przeszukuje od końca tablicy.

Przykład

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

Dowiedz się więcej w Metodach iteracji tablicy JS .


JSON.parse()

Powszechnym zastosowaniem JSON jest odbieranie danych z serwera WWW.

Wyobraź sobie, że otrzymałeś ten ciąg tekstowy z serwera WWW:

'{"name":"John", "age":30, "city":"New York"}'

Funkcja JavaScript JSON.parse()służy do konwersji tekstu na obiekt JavaScript:

var obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}');

Przeczytaj więcej w naszym samouczku JSON .


JSON.stringify()

Powszechnym zastosowaniem JSON jest wysyłanie danych na serwer WWW.

Wysyłając dane na serwer WWW, dane muszą być ciągiem.

Wyobraź sobie, że mamy ten obiekt w JavaScript:

var obj = {name:"John", age:30, city:"New York"};

Użyj funkcji JavaScript, JSON.stringify()aby przekonwertować go na ciąg.

var myJSON = JSON.stringify(obj);

Wynikiem będzie ciąg znaków zgodny z notacją JSON.

myJSON jest teraz ciągiem i jest gotowy do wysłania na serwer:

Przykład

var obj = {name:"John", age:30, city:"New York"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;

Przeczytaj więcej w naszym samouczku JSON .


Data.teraz()

Date.now() returns the number of milliseconds since zero date (January 1. 1970 00:00:00 UTC).

Example

var timInMSs = Date.now();

Date.now() returns the same as getTime() performed on a Date object.

Learn more in JS Dates.


Date toISOString()

The toISOString() method converts a Date object to a string, using the ISO standard format:

Example

const d = new Date();
document.getElementById("demo").innerHTML = d.toISOString();

Date toJSON()

toJSON() converts a Date object into a string, formatted as a JSON date.

JSON dates have the same format as the ISO-8601 standard: YYYY-MM-DDTHH:mm:ss.sssZ:

Example

d = new Date();
document.getElementById("demo").innerHTML = d.toJSON();

Property Getters and Setters

ES5 lets you define object methods with a syntax that looks like getting or setting a property.

This example creates a getter for a property called fullName:

Example

// Create an object:
var person = {
  firstName: "John",
  lastName : "Doe",
  get fullName() {
    return this.firstName + " " + this.lastName;
  }
};

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.fullName;

This example creates a setter and a getter for the language property:

Example

var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
  get lang() {
    return this.language;
  },
  set lang(value) {
    this.language = value;
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;

This example uses a setter to secure upper case updates of language:

Example

var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
  set lang(value) {
    this.language = value.toUpperCase();
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object:
document.getElementById("demo").innerHTML = person.language;

Learn more about Gettes and Setters in JS Object Accessors


Object.defineProperty()

Object.defineProperty() is a new Object method in ES5.

It lets you define an object property and/or change a property's value and/or metadata.

Example

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : true,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

Next example is the same code, except it hides the language property from enumeration:

Example

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : false,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

This example creates a setter and a getter to secure upper case updates of language:

Example

/// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO"
};

// Change a Property:
Object.defineProperty(person, "language", {
  get : function() { return language },
  set : function(value) { language = value.toUpperCase()}
});

// Change Language
person.language = "en";

// Display Language
document.getElementById("demo").innerHTML = person.language;

E5 Object Methods

ES5 added a lot of new Object Methods to JavaScript:

Managing Objects

// Create object with an existing object as prototype
Object.create(parent, donor)

// Adding or changing an object property
Object.defineProperty(object, property, descriptor)

// Adding or changing object properties
Object.defineProperties(object, descriptors)

// Accessing Properties
Object.getOwnPropertyDescriptor(object, property)

// Returns all properties as an array
Object.getOwnPropertyNames(object)

// Accessing the prototype
Object.getPrototypeOf(object)

// Returns enumerable properties as an array
Object.keys(object)

Protecting Objects

// Prevents adding properties to an object
Object.preventExtensions(object)

// Returns true if properties can be added to an object
Object.isExtensible(object)

// Prevents changes of object properties (not values)
Object.seal(object)

// Returns true if object is sealed
Object.isSealed(object)

// Prevents any changes to an object
Object.freeze(object)

// Returns true if object is frozen
Object.isFrozen(object)

Learn more in Object ECMAScript5.


Trailing Commas

ES5 allows trailing commas in object and array definitions:

Object Example

person = {
  firstName: "John",
  lastName: " Doe",
  age: 46,
}

Array Example

points = [
  1,
  5,
  10,
  25,
  40,
  100,
];

WARNING !!!

JSON does not allow trailing commas.

JSON Objects:

// Allowed:
var person = '{"firstName":"John", "lastName":"Doe", "age":46}'
JSON.parse(person)

// Not allowed:
var person = '{"firstName":"John", "lastName":"Doe", "age":46,}'
JSON.parse(person)

JSON Arrays:

// Allowed:
points = [40, 100, 1, 5, 25, 10]

// Not allowed:
points = [40, 100, 1, 5, 25, 10,]