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 tablic 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


Typ JavaScript


W JavaScript istnieje 5 różnych typów danych, które mogą zawierać wartości:

  • string
  • number
  • boolean
  • object
  • function

Istnieje 6 rodzajów obiektów:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

Oraz 2 typy danych, które nie mogą zawierać wartości:

  • null
  • undefined

Rodzaj operatora

Możesz użyć typeofoperatora, aby znaleźć typ danych zmiennej JavaScript.

Przykład

typeof "John"                 // Returns "string"
typeof 3.14                   // Returns "number"
typeof NaN                    // Returns "number"
typeof false                  // Returns "boolean"
typeof [1,2,3,4]              // Returns "object"
typeof {name:'John', age:34}  // Returns "object"
typeof new Date()             // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar                  // Returns "undefined" *
typeof null                   // Returns "object"

Proszę zwrócić uwagę:

  • Typ danych NaN to liczba
  • Typ danych tablicy to obiekt
  • Typ danych daty to obiekt
  • Typ danych null to object
  • Typ danych niezdefiniowanej zmiennej jest niezdefiniowany *
  • Typ danych zmiennej, której nie przypisano wartości, jest również niezdefiniowany *

Nie można użyć typeofdo określenia, czy obiekt JavaScript jest tablicą (lub datą).



Dane pierwotne

Wartość danych pierwotnych to pojedyncza prosta wartość danych bez dodatkowych właściwości i metod.

Operator typeofmoże zwrócić jeden z tych typów podstawowych:

  • string
  • number
  • boolean
  • undefined

Przykład

typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"
typeof x                   // Returns "undefined" (if x has no value)

Złożone dane

Operator typeofmoże zwrócić jeden z dwóch złożonych typów:

  • function
  • object

Operator typeofzwraca „object” dla obiektów, tablic i wartości null.

Operator typeofnie zwraca „obiektu” dla funkcji.

Przykład

typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof null                  // Returns "object"
typeof function myFunc(){}   // Returns "function"

Operator typeofzwraca " object" dla tablic, ponieważ w JavaScript tablice są obiektami.


Typ danych typeof

Operator typeofnie jest zmienną. Jest operatorem. Operatory ( + - * / ) nie mają żadnego typu danych.

Ale typeofoperator zawsze zwraca łańcuch (zawierający typ operandu).


Konstruktor Właściwość

Właściwość constructorzwraca funkcję konstruktora dla wszystkich zmiennych JavaScript.

Przykład

"John".constructor                // Returns function String()  {[native code]}
(3.14).constructor                // Returns function Number()  {[native code]}
false.constructor                 // Returns function Boolean() {[native code]}
[1,2,3,4].constructor             // Returns function Array()   {[native code]}
{name:'John',age:34}.constructor  // Returns function Object()  {[native code]}
new Date().constructor            // Returns function Date()    {[native code]}
function () {}.constructor        // Returns function Function(){[native code]}

Możesz sprawdzić właściwość konstruktora, aby dowiedzieć się, czy obiekt jest Array (zawiera słowo „Array”):

Przykład

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

Lub jeszcze prościej, możesz sprawdzić, czy obiekt jest funkcją Array :

Przykład

function isArray(myArray) {
  return myArray.constructor === Array;
}

Możesz sprawdzić właściwość konstruktora, aby dowiedzieć się, czy obiekt jest Date(zawiera słowo „Data”):

Przykład

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

Lub jeszcze prościej, możesz sprawdzić, czy obiekt jest funkcją Date :

Przykład

function isDate(myDate) {
  return myDate.constructor === Date;
}


Nieokreślony

W JavaScript zmienna bez wartości ma wartość undefined. Typ to również undefined.

Przykład

let car;    // Value is undefined, type is undefined

Każdą zmienną można opróżnić, ustawiając jej wartość na undefined. Typ będzie również undefined.

Przykład

car = undefined;    // Value is undefined, type is undefined

Puste wartości

Pusta wartość nie ma nic wspólnego z undefined.

Pusty ciąg ma zarówno prawidłową wartość, jak i typ.

Przykład

let car = "";    // The value is "", the typeof is "string"

Zero

W JavaScript nullto „nic”. To ma być coś, co nie istnieje.

Niestety w JavaScript typem danych nulljest obiekt.

Możesz uznać to za błąd w JavaScript, który typeof nulljest obiektem. Powinno być null.

Możesz opróżnić obiekt, ustawiając go na null:

Przykład

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;    // Now value is null, but type is still an object

Możesz także opróżnić obiekt, ustawiając go na undefined:

Przykład

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined;   // Now both value and type is undefined

Różnica między niezdefiniowanym a zerowym

undefinedi nullmają taką samą wartość, ale różnią się rodzajem:

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true