JavaScript provjerava vrstu varijable. Operator za prijemnu prijemnik

a \u003d (b\u003e 0) && (c + 1! \u003d d); Zastava \u003d! (Status \u003d 0);

Tabela 14.5. Logički operateri

Opis operatera

! Ne (logička inverzija)

&& I (logično množenje)

|| Ili (logički dodatak)

Tabela 14.6. Rezultati izvršenja operatora i ili ili

Operand 1.

Operand 2.

Tabela 14.7. Rezultati izvršenja operatora ne

Operator za prijemnu prijemnik

Operator primitka tipatypeoF vraća niz koji opisuje vrstu podataka operanda. Operand, vrsta od kojih trebate znati postavlja se nakon ovog operatera i uđe u zagrade:

s \u003d Typ ("STR");

Kao rezultat izvršenja ovog izražavanja u varijabli, bit će to niz "string", koji označava vrstu niza.

Sve vrijednosti koje se montiraju operator može se vratiti navedeni su u tablici. 14.8.

Tabela 14.8. Vrijednosti koje je vratio prema operateru

Vrsta podataka

Povratna linija

Niz

Numerički

Tabela 14.8 (kraj)

Vrsta podataka

Povratna linija

Logički

Kompatibilnost i tip podataka Pretvaranje

Vrijeme je da razmotrimo još dva važna pitanja: kompatibilnost vrsta podataka i pretvaranje jedne vrste na drugu.

Što se događa ako se preklopi dvije numeričke vrijednosti? Tako je - još jedna numerička vrijednost. A ako preklopite broj i string? Teško je reći ... Ovdje se JavaScript suočava s problemom nespojivosti tipova podataka i pokušava učiniti ove vrste kompatibilne, transformišući jednu od njih u drugu. Prvo, on pokušava pretvoriti red na broj i ako uspije, obavlja dodavanje. U slučaju kvara, broj će se transformirati u niz, a dva dobijena reda bit će kombinirana. Na primjer, kao rezultat implementacije web scenarija s popisa 14.6, vrijednost varijable B prilikom dodavanja iz varijabli A će se pretvoriti u numerički tip; Dakle, varijabla C će sadržavati vrijednost 23.

Oglas 14.6.

var A, B, C, D, E, F; a \u003d 11;

b \u003d "12"; C \u003d A + B;

d \u003d "JavaScript"; E \u003d 2;

No, jer vrijednost varijable D ne može se pretvoriti u broj, vrijednost E će se pretvoriti u niz, a rezultat - vrijednost F - postat će jednaka

Logičke vrijednosti se pretvaraju ili na numerički ili u nizu, ovisno o specifičnom slučaju. Prava vrijednost bit će pretvorena u broj 1 ili niz "1", a vrijednost false - u 0 ili "0". Suprotno tome, broj 1 bit će pretvoren u TRUE, a broj 0 je lažno. Takođe će u lažnom transformirati

null i nedefinirane vrijednosti.

Dio III. Web stranice ponašanja. Web scenariji

Može se vidjeti da se JavaScript bori da pravilno obavlja čak i pogrešno pismene izraze. Ponekad se ispostavilo, ali češće sve radi kako je planirano, a na kraju je provedba web scenarija prekinuta u vezi s otkrivanjem pogreške u potpunosti u svom drugom mjestu, na apsolutno ispravnom izvještaju. Stoga je bolje spriječiti takve incidente.

Prioritet operatora

Posljednje pitanje koje ćemo pogledati ovdje su prioritet operatora. Kao što se sjećamo, prioritet utječe na redoslijed u kojem se operateri izvode u izražavanju.

Neka bude sljedeći izraz:

U ovom slučaju, prvo do vrijednosti varijable B bit će dodan u C, a zatim će se 10 oduzeti iz iznosa. Operatori ovog izražavanja imaju isti prioritet i stoga se trčaju strogo lijevo na desno.

Sada razmotrite takav izraz:

Ovdje će se prvo izvesti množenje vrijednosti C za 10, a tek će se tada dodati vrijednost b. Operator za množenje ima veći prioritet od operatera dodataka, tako da će narudžba "strogo preostala na desno" biti prekinuta.

Najniži prioritet za operatore za dodjelu. Zbog toga se prvi izraz izračunava, a onda mu je rezultat dodijeljen varijabli.

U općenito, osnovni princip ispunjavanja svih operatera je sljedeći: Prvi operateri se izvode s većim prioritetom, a tek kasnije operateri sa nižim. Operatori s istim prioritetom vrše se redoslijedom njih (s lijeva na desno).

U stol. 14.9 Operatori koje su proučavali SAD-u navedeni su u redoslijedu njihovih prioriteta.

Tabela 14.9. Prioritet operatora (u silaznom redoslijedu)

Operatori

Opis

++ - - ~! Vrstu.

Povećanje, smanjenje, promjena znaka, logično ne, definicija

Množenje, divizija, uzimanje ravnoteže

Postavljanje dodavanja i reda, oduzimanje

Upoređivanje operatora

Logički I.

Poglavlje 14. Uvod u web programiranje. JavaScript jezik

Tabela 14.9 (kraj)

Operatori

Opis

Logički ili

Uvjetni operator (vidi dolje)

= <оператор>=

Zadatak, jednostavan i složen

Pažnja!

Zapamtite ovu tablicu. Nepravilni postupak za obavljanje operatora može prouzrokovati teške pogreške u kojima izvana apsolutno pravilan izraz daje pogrešan rezultat.

Ali šta ako trebamo prekinuti uobičajeni redoslijed izvršenja operatora? Koristimo zagrade. Sa takvim unosom priloženim u zagradama, operatori se prvo izvode:

a \u003d (b + c) * 10;

Ovdje će se prvo dovršiti dodavanje vrijednosti varijabli B i C, a zatim će rezultirajuća količina umnožiti za 10.

Operatori zatvoreni u zagradama također su podložni prioritetu. Stoga se često koriste više nosača:

a \u003d ((b + c) * 10 - d) / 2 + 9;

Ovdje će operateri izvoditi u takvom redoslijedu:

1. Dodatak B i C.

2. Pomnožavanje iznosa primljenog za 10.

3. Odrukt D iz posla.

4. Podjela razlike za 2.

5. Pridružite se 9 do privatnog.

Ako uklonite zagrade:

a \u003d B + C * 10 - D / 2 + 9;

redoslijed izvršenja operatora bit će:

1. Umnožavanje C i 10.

2. Dijeljenje D do 2.

3. Dodavanje B i radi C i 10.

4. Oduzimanje iz primljenog iznosa privatnog od divizijed 2.

5. Prilagođen 9 do dobivene razlike.

Ispada potpuno drugačiji rezultat, zar ne?

  • Nedefinirano: nedefinirano
  • Null: "objekt"
  • Boolean: "Boolean"
  • Broj: "broj"
  • String: "string"
  • Funkcija: "Funkcija"
  • Sve ostalo: "Objekt"

U ovu tablicu treba dodati sljedeće komentare:

1. Typ Null \u003d\u003d\u003d "Objekt".

Teoretski ovdje je suptilan trenutak. Na jezicima sa statičkim kucanjem, varijabla vrste objekta ne može sadržavati objekt (, nul, nulti pokazivač).

Praktično - JavaScript je nezgodan. Stoga će programeri ES 5.1 napraviti intuitivniju stvar: Typ Null \u003d\u003d\u003d "null".

Ali pošto još uvijek imamo krug ES3, nemojte pogriješiti, na primjer, na ovome:

/ * Funkcija traži neki objekt i vraća ga ili null ako ništa nije pronađeno * / Funkcija pretraga () () var obj \u003d pretraga (); if (Typeof OBJ \u003d\u003d\u003d "objekt") (// da li smo zaista pronašli objekt (neuspjeh) obj.Method ();)

2. Ne zaboravite na obloge omota (Typeof Novi broj (5) \u003d\u003d\u003d "Objekt").

3. I ne zaboravite na prave preglednike stvorite bilo šta sa objektima domaćina.

Nemojte se iznenaditi da safari uporno razmatra HTMLCollection tipkom, a tj. Ranije od 9. verzije čuvaju našu omiljenu upozorenje () za objekt. Također je hrom koristio za čitanje regexp-a za funkciju, ali čini se da se čini formiranim i odgovorima na objektu.

tostring ()

Pokušaj otkriti vrstu vrijednosti prema svojoj metodi tostiranja () je besmislena. U svim "časovima", ova metoda je nadjačana na njemu.

Za izlaz informacija o pogrešacima metoda je dobra, ali vrsta varijable to ne određuje.

Objekt.prototip.tostring ()

Iako je tostrano nadjačano unutar određenih "časova", još uvijek imamo njenu početnu implementaciju od objekta. Pokušajmo ga koristiti:

Konzola.log (objekt .prototip .tostring .call (vrijednost));

konzola.log (objekt.prototip.tostring.call (vrijednost));


Clinton razblaživa ovaj pulomotin

Čudno dovoljno, ova metoda djeluje iznenađujuće dobro.

Za skalarne tipove, povratak, ,,,

Smiješna stvar je u tome da čak i novi broj (5) na kojem se ovdje povrati.

Na nulu i nedefiniranom načinu davanja propusta. Potom se očekuju različite preglednike, a zatim se očekuju i, tada, uopšte. Međutim, lako je odrediti vrstu ove dvije vrijednosti i bez njega.

Zanimljivo započinje kada prilazimo predmetima (oni koji imaju typ \u003d\u003d\u003d "objekt").

ugrađeni objekti rade, praktično, sa praskom:

  • {} —
  • Datum -
  • Greška -
  • Regexp -

Jedino pada iz liste argumenata, što je to.
Sa domaćim objektima, opet gore.

U IE, Dom su predmeti počeli postati "normalni" predmeti samo iz 8. verzije, a zatim ne do kraja. Stoga, IE 6-8, svi su ti objekti (HTMLCollection, Domlement, Textnode i u isto vrijeme dokument i prozor) jednostavno vođeni.

U svim ostalim preglednicima (uključujući IE9) rezultatom tostiranja već nešto možete učiniti. Iako sve nije lako: HTMLCollection je tamo. Prozor - onda, onda. Ali iz ovoga već možete pokušati nešto pobuditi.

Teže s doletima: Prikazuje se u obrascu - njegov format za svaku oznaku. Ali ovdje će nam redovno pomoći.

Sa ostalim domaćinima (na lokaciji i navigatorskim testovima) o istoj priči. Svugdje, osim IE, mogu se identificirati redom.

Minuse korištenja objekta.prototip.tostring ():

1. Mogućnost toga nije posvećena standardom. I radije bismo se radovali ovdje da sve dobro funkcionira, a ne da srušimo neke mane.

2. Određivanje vrste uzorka sintakse niza koji se vraća metodom, što uopće nije određivanje tipa i još uvijek je uzrokovana u objektu na koji se ne primjenjuje, ostavlja talog na tuširanju.

3. U startu IE, kao što se vidi, objekti domaćina obično nisu normalno identificirani.

Međutim, ovo je potpuno radna stvar kada se koristi u kombinaciji s drugim sredstvima.


Dizajneri

I na kraju, dizajneri. Ko može bolje reći o objektu "klase" u JS-u, ako ne i njegov dizajner?

Null i nedefinirani nemaju omotač ili dizajnere.

Preostali skalarni tipovi omotača imaju, respektivno, možete dobiti konstruktor:

(5) .constructor \u003d\u003d\u003d broj; (Broj .nan) .constructor \u003d\u003d\u003d broj; (TRUE) .Constructor \u003d\u003d\u003d Boolean; ("String") .constructor \u003d\u003d\u003d string;

(5) .constructor \u003d\u003d\u003d broj; (Broj.nan) .Constructor \u003d\u003d\u003d broj; (TRUE) .Constructor \u003d\u003d\u003d Boolean; ("String"). Konstruktor \u003d\u003d\u003d string;

Ali, ne prenosi ovdje:

5 instanca broj; // lažni broj .nan instanca broj; // FALSE TRUE TRUE TERET BOOLEAN; // FALSE "STRING" NIGE NIGE; // FALSE

5 instancija broj; // False broj.Nan instanca broj; // FALSE TRUE TRUE TERET BOOLEAN; // FALSE "STRING" NIGE NIGE; // FALSE

(Ispod će raditi za dugotrajnu novi broj (5))

Sa funkcijama (koje su takođe predmete) i Istecyf:

Konzola.log ((Funkcija () () ()) instanca funkcija); // true console.log ((funkcija () ()) .constructor \u003d\u003d\u003d funkcija); // Tačno.

konzola.log ((Funkcija () () ()) instanca funkcija); // True console.log ((Funkcija () ()). Konstruktor \u003d\u003d\u003d Funkcija); // Tačno.

Svi ugrađeni časovi lako se identificiraju i dizajneri: niz, datum, regexp, greška.

Jedan problem se javlja ovdje sa argumentima, konstruktorom kojim objektom.

A drugi sa samim objektom ili bolje rečeno kako pripisati objekt stvoren putem korisničkog dizajnera.

Dakle, možete definirati samo osnovni objekt:

oBJ INTERESTOF Objekt;

Kao jedna od varijanti definicije - za premještanje svih ostalih mogućih vrsta (niz, greške ...) i ako ni pod jednim ne podvrgava - "objekt".

Dizajneri i predmeti domaćina

Sa predmetima domaćina su gori.

Započnimo sa činjenicom da, tj. Do inkluzivnog inkluziva 7. verzije ne smatra ih uopštenim objektima. Oni jednostavno nemaju dizajnere i prototipove (u svakom slučaju, programer ih ne doseže).

U drugim preglednicima je bolji. Dizajneri su i možete definirati klasu vrijednosti. Na različite su načine nazivaju samo različiti preglednici. Na primjer, za HTMLCollection, dizajner će biti ili htmlcollection ili nodelist, ili čak nodelistički konstruktor.

Takođe biste trebali definirati osnovni dizajner za dom. U FF-u, na primjer, HTMLelement iz kojeg su HTMLdiveLement i drugi već naslijeđeni.

Firefox baca se u Firefox ispod 10. verzije i opere ispod 11. Postoji konstruktor sakupljanja - objekt.

konstruktor.Name.

Više konstruktora ima ime imena koje može biti korisno.

Sadrži naziv dizajnerske funkcije, na primjer, (5) .constructor.name \u003d\u003d\u003d "broj".

Ali:
1. Ipak, nije čak ni u 9. mjestu.
2. U host-objektima, preglednici se ponovo guraju svaki (a često uopšte nemaju ovu nekretninu). U operi, dom je ime dizajnera u općoj funkciji.prototip.
3. Ponovno argumenti "Objekt".

Zaključci

Nijedno od predstavljenih metoda ne daje sto posto definicija vrste / klase vrijednosti u svim pretraživačima. Međutim, u agregatu to omogućavaju da to učini.

U skoroj budućnosti pokušat ću prikupiti sve podatke u znakovima i dati primjer funkcije definicije.

JavaScript. ili JS. (Skraćeno) Nije jednostavan jezik i programeri novajlija neće odmah znati o tome. U početku prepoznaju osnove i sve se čini šarenim i lijepim. Tražite malo dublje, JavaScript se pojavljuje nizovi, predmeti, povratni pozivi i sve što često čini mozak.

JavaScript je važan za pravilno provjeriti vrstu varijable. Pretpostavimo da želite znati da li je varijabla s nizom ili objektom? Kako to provjeriti? U ovom konkretnom slučaju postoje trikovi tokom inspekcije i to će biti ovaj unos. Odmah nastavimo.

Provjera varijabilnog tipa

Na primjer, morate provjeriti je li objekti varijabla, niz, niz ili broj. Da biste to učinili, možete koristiti Typoof, ali neće uvijek dati istinu i u primjeru ispod, pokazat ću zašto.

Napisao sam ovaj primer da se živo pokazuje zašto Typeof nije uvijek pravi izbor.

Var _comparison \u003d (string: "string", int: 99, float: 13.555, objekt: (Pozdrav: "HI"), niz: novi niz (1, 2, 3); // Vratite niz tipkama Var _OBjkeys objekta \u003d objekata.Kays (_Comparison); za (var i \u003d 0; i<= _objKeys.length - 1; i++) { // выведем в консоль тип каждой переменной console.log(typeof _comparson[_objKeys[i]]); }

Izvrhnik koda Rezultat:

Broj broja objekta objekta

Je li tako? - Naravno da ne. Postoje dva problema. Svaki od njih bit će opisani detaljno i predložiti se.

Prvi problem: plovak, izlaz kao broj

Poređenje.Float nije broj i umjesto broja mora biti plovak (plutajući broj). Ovo je fiksirano, možete kreirati funkciju provjere kao u donjem kodu.

Var _FloatNumber \u003d 9.22; var _notfloatnumber \u003d 9; Konzola.log (jefloat (_Floatnumber)); Konzola.log (jefloat (_notfloatnumber); Konzola.log (jefloat (")); Funkcija Isfloat (N) (povratni broj (n) \u003d\u003d\u003d N && N% 1! \u003d\u003d 0;)

Funkcija ISFloat () vrši provjeru svih vrijednosti na plutajuće brojeve. Prvo se provjerava je li varijabla jednaka n. broj (broj (n) \u003d\u003d\u003d n) i ako je odgovor da, tada je još jedna provjera valjanosti s ostatkom i ako postoji ostatak, onda se Buleva vraća ( tačno. ili lažan) Rezultat (n% 1! \u003d\u003d 0).

U primjeru iznad vraća se tačno., lažan i lažan. Prva vrijednost je lebde.tip, drugi nije - ovo je uobičajeni broj i posljednji samo prazan niz koji ne odgovara pravilima.

Drugi problem: niz je određen kao objekt

U prvom primjeru niz je prikazan kao objekt i nije baš dobar, jer ponekad trebate koristiti ovu određenu vrstu i ništa više.

Postoji nekoliko načina za provjeru varijable na vrsti niza.

Prva opcija (dobra opcija). Provjerite dodatnu opremu podataka na nizu koristeći instancuf ().

Var podaci \u003d novi niz ("zdravo", "svijet"); Var isarr \u003d Podaci instanca polja;

Druga verzija (dobra opcija). Metoda Array.isarray () vraća booletnu vrijednost, koja će ovisiti o tome da li je varijabla niz ili ne ().

Var podaci \u003d novi niz ("zdravo", "svijet"); var isarr \u003d array.isarray (podaci);

Treća opcija (najbolja, ali dugačka). Radi praktičnosti možete napraviti ovaj način. Koristeći objekt, radimo. Ako je rezultat objekta.prototip.tostring.call (podaci) nije jednak varijabli nije niza ().

Var podaci \u003d novi niz ("zdravo", "svijet"); var isarr \u003d objekt.prototip.tostring.call (podaci) \u003d\u003d ""; Konzola.log (Isarr);

Posljednji rezultat u obliku prikladne funkcije:

Funkcija Isarray (podaci) (povratni objekt.Prototip.tostring.call (podaci) \u003d\u003d "")

Sada možete nazvati funkcije Isarray () i kao argument za postavljanje niza ili nešto drugo i vidjeti rezultat.

Poslije riječi

Snimanje je pokazalo prilično veliko nego prvotno misao. Ali zadovoljan sam, jer ona ukratko i jasno opisuje poteškoće prilikom provjere varijabli u JavaScript-u i kako ih poći oko njih.

Ako imate bilo kakvih pitanja, napišite ih u nastavku do ovog zapisa. Rado ću pomoći.

Operator Vrstu. Vraća niz koji označava vrstu operanda.

Sintaksa

Operand prati operatoru tipa:

Vrstu. operand.

Parametri

operand. To je izraz koji predstavlja predmet ili primitivni, čiji se vrsta mora vratiti.

Opis

Sljedeća tablica prikazuje moguće vraćene vrijednosti tipa. Na stranici su dodatne informacije o vrstama i primitivima.

Primjeri

// brojevi tipof 37 \u003d\u003d\u003d "broj"; TIP 3.14 \u003d\u003d\u003d "broj"; TIP (42) \u003d\u003d\u003d "broj"; TypOf math.ln2 \u003d\u003d\u003d "broj"; Typeof Infinity \u003d\u003d\u003d "broj"; Typeof Nan \u003d\u003d\u003d "broj"; // uprkos činjenici da je to "ne-broj" (ne broj) tip (1) \u003d\u003d\u003d "broj"; // Nikad ne koristite ovaj unos! // string tipof "" \u003d\u003d\u003d "string"; Typeof "Bla" \u003d\u003d\u003d "string"; TIP "1" \u003d\u003d\u003d "String"; // Imajte na umu da broj unutar žice i dalje ima vrstu niza (Typ 1) \u003d\u003d\u003d "string"; // Typeof će se uvijek vratiti u ovom slučaju The Typ String niz ("ABC") \u003d\u003d\u003d "string"; // Nikad ne koristite ovaj unos! // Booleans Typeof True \u003d\u003d\u003d "Boolean"; Typeof False \u003d\u003d\u003d "Boolean"; Typeof Boolean (True) \u003d\u003d\u003d "Boolean"; // Nikad ne koristite ovaj unos! // simssov simbol simbol () \u003d\u003d\u003d "simbol" TypOf simbol ("foo") \u003d\u003d\u003d "simbol" TypOf simbol.iterator \u003d\u003d\u003d "simbol" // nedefinirano "; TIPOOF DecreatedBuTundeFineteVariable \u003d\u003d\u003d "nedefinirano"; Typeof NetclaredVariable \u003d\u003d\u003d "nedefinirano"; // TOOF OBJECTI (A: 1) \u003d\u003d\u003d "Objekt"; // Upotrijebite Array.isarray ili objekt.Prototip.tostring.call // Da biste razlikovali uobičajene objekte i karton \u003d\u003d\u003d "Object" nizovi; TIPOF NOVO DATE () \u003d\u003d\u003d "OBJEKT"; // da niže dovodi do grešaka i problema. Ne koristite! Typeof New Boolean (True) \u003d\u003d\u003d "objekt"; TIP NEW broj (1) \u003d\u003d\u003d "Objekt"; Typeof New String ("ABC") \u003d\u003d\u003d "objekt"; // Funkcije TOF funkcija () () \u003d\u003d\u003d "Funkcija"; TIPOF KLASS C () \u003d\u003d\u003d "Funkcija"; TIPOF MATH.SIN \u003d\u003d\u003d "Funkcija";

null

// utvrđeno je iz rođenja JavaScript tytof null \u003d\u003d\u003d "objekt";

U prvoj implementaciji JavaScripta vrijednosti su prikazane u vrsti i vrijednosti oznake para. Oznaka oznake za objekte bila je 0. Null je predstavljen kao nulta pokazivač (0x00 u većini platformi). Slijedom toga, tip oznake za nulu bio je nula, tako da je povratna vrijednost TIP-a fiktivna. ()

Ispravka je postavljena u ECMAScriptu (kroz isključivanje), ali je odbijena. To bi dovelo do činjenice da je Typeof NULL \u003d\u003d\u003d "null".

Koristeći novi operater

// Sve dizajnere za funkcije kreirane pomoću "novog" imat će tip "Object" Var string \u003d novi niz ("string"); var num \u003d novi broj (100); TIP STR; // povratak "objekt" Typeof Num; // vratit će se "objekt" //, ali postoji izuzetak za funkciju var func \u003d novi funkciju () konstruktor; TIP FUNC; // povratak "funkcija"

Redovni izrazi

Nazvani redovni izrazi bili su nestandardni dodatak u nekim preglednicima.

TIPOF / S / \u003d \u003d\u003d\u003d funkcija "; // Chrome 1-12 ne odgovara ecmascript 5.1 TypOF / S / \u003d\u003d\u003d "objekt"; // Firefox 5+ odgovara ecmascript 5.1

Greške povezane sa privremenim mrtvim zonama

Prije Ecmascript 2015, zagarantovano je da će operator Typeof vratiti niz za bilo koji operand sa kojom je zvan. To se promijenilo nakon dodavanja ne-pokornih puštanja i oglasa Const sa blok područjem vidljivosti. Ako su varijable proglašene korištenjem puštanja i Const, a za njih se nazivaju Typeof u klasi deklaracije klase, ali prije najave, referentnerreerror se izbacuje. Ponašanje se razlikuje od neprijavljenih varijabli za koje će se Typeof vratiti "nedefinirano". Varijable sa blok područjem vidljivosti nalaze se u "privremenoj mrtvoj zoni" koja traje od početka bloka do deklaracije varijabli. U ovoj zoni pokušaj pristupa varijablima izbacuje izuzetak.

Typeof NetclaredVariable \u003d\u003d\u003d "nedefinirano"; Typeof NewletVarriable; Neka je NewletVariable; // prefererror tytof newconstrvariable; Const NewconTvariable \u003d "Zdravo"; // ReferentError

Izuzeci

U svim tekućim preglednicima postoji nestandardni dokument. Svako host objekt, koji ima neodređeni.

Typeof dokument.all \u003d\u003d\u003d "nedefinirano";

Iako specifikacija omogućava vlastitim vrstama vrsta za nestandardne egzotične predmete, potrebno je da se ta imena razlikuju od unaprijed definirane. Situacija kada je dokument.Sva tipa nedefinirano treba smatrati izuzetnim kršenjem pravila.

Specifikacije

Specifikacija Status Komentari
Ecmascript najnoviji nacrt (ECMA-262)
Nacrt
Ecmascript 2015 (6. izdanje, ECMA-262)
Definicija "The Tip operatora" u ovoj specifikaciji.
Standard
Ecmascript 5.1 (ECMA-262)
Definicija "The Tip operatora" u ovoj specifikaciji.
Standard
Ecmascript 3. izdanje (ECMA-262)
Definicija "The Tip operatora" u ovoj specifikaciji.
Standard
Ecmascript 1. izdanje (ECMA-262)
Definicija "The Tip operatora" u ovoj specifikaciji.
Standard Početna definicija. Implementiran u JavaScript 1.1

Kompatibilnost sa preglednicima

Ažurirajte podatke kompatibilnosti na GitHub-u

RačunariMobilniServer
Chrome..Firefox.Internet Explorer.Opera.Safari.Android Webview.Chrome za AndroidFirefox za AndroidOpera za AndroidSafari na iOS-u.Samsung InternetČvor.js.
Vrstu.Chrome. Potpuna podrška 1 . Potpuna podrška 12 Firefox. Potpuna podrška 1 Tj. Potpuna podrška 3 Opera. Potpuna podrška DaSafari. Potpuna podrška DaWebview Android Potpuna podrška 1 Chrome Android Potpuna podrška 18 Firefox Android Potpuna podrška 4 Opera Android Potpuna podrška DaSafari iOS. Potpuna podrška DaSamsung Internet Android Potpuna podrška 1.0 nodejs. Potpuna podrška Da

Legenda

Potpuna podrška Potpuna podrška

IE-Specifični pojmovi

U IE 6, 7 i 8, mnogi su objekti domaćina objekti objekta, ali ne i karakteristike. Na primjer.