JavaScript Ellenőrizze a változó típusát. A fogadó üzemeltető típusa

a \u003d (b\u003e 0) && (c + 1! \u003d d); Flag \u003d! (Állapot \u003d 0);

14.5. Táblázat. Logikai üzemeltetők

Kezelő leírása

! Nem (logikai inverzió)

&& És (logikai szorzás)

|| Vagy (logikai kiegészítés)

14.6. Táblázat. Az üzemeltetők végrehajtásának eredményei és vagy

Operand 1.

Operand 2.

14.7. Táblázat. Az üzemeltető végrehajtásának eredményei nem

A fogadó üzemeltető típusa

Írja be az átvételi szolgáltatóta Typeof visszaadja az operandumok típusát leíró karakterláncot. Operand, amelynek típusát kell tudni, az üzemeltető után helyezkednek el, és zárójelekbe kerülnek:

s \u003d típus ("str");

Ennek a kifejezésnek a végrehajtása következtében az S változóban egy karakterlánc "karakterlánc" lesz, amely egy stringtípust jelöl.

Minden olyan érték, amelyet a TypeFer üzemeltető visszatérhet a táblázatban. 14.8.

14.8. Táblázat. A típusú üzemeltető által visszaküldött értékek

Adattípus

Visszatérő vonal

Húr

Számszerű

14.8. Táblázat (vége)

Adattípus

Visszatérő vonal

Logikus

Kompatibilitás és adattípus konverzió

Itt az ideje, hogy fontoljon két fontosabb kérdést: az adattípusok összeegyeztethetősége és az egyik típus konvertálása a másikra.

Mi történik, ha összecsukott két numerikus érték? Ez a helyes - egy másik numerikus érték. És ha a számot és a karakterláncot hajtja végre? Nehéz megmondani ... Itt a JavaScript szembesül az adattípusok összeegyeztethetetlenségének problémájával, és megpróbálja ezeket a típusokat kompatibilisvé tenni, átalakítja az egyiket a másikba. Először is megpróbálja átalakítani a számot a számra, és ha kezeli, elvégzi a kiegészítést. Hiba esetén a szám átalakul a karakterláncba, és a kapott két sor kombinálva lesz. Például a webes forgatókönyv végrehajtása következtében a 14.6-os felsorolásból a B változó értékét az A változó hozzáadásakor numerikus típusvá alakítják; Így a C változó 23 értéket tartalmaz.

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;

De mivel a D változó értéke nem konvertálható számra, az E értéke átalakul a karakterláncba, és az eredmény - az F - értéke egyenlő lesz

A logikai értékeket numerikus vagy karakterláncra alakítják át, az adott esettől függően. Az igazi érték az 1. számra vagy az "1" karakterláncra és a FALSE értékre kerül, 0 vagy "0" értékre. Ezzel szemben az 1-es szám igazra lesz átalakításra, és a 0 szám hamis. Hamisban is átalakulnak

null és meghatározatlan értékek.

III. Rész. Viselkedés weboldalak. Webes forgatókönyvek

Látható, hogy a JavaScript küzd, hogy helyesen helyezze el a helytelenül írott kifejezéseket. Néha kiderül, de gyakrabban minden jól működik a tervek szerint, és a végén, a végrehajtás a Web forgatókönyv megszakad kapcsán keletkező hibák felismerése teljesen másik helyen, egy teljesen korrekt nyilatkozatot. Ezért jobb megakadályozni az ilyen eseményeket.

A piaci szereplők prioritása

Az utolsó kérdés, amit itt fogunk nézni, az operátorok elsőbbsége. Mint emlékszem, az elsőbbség befolyásolja az üzemeltetők kifejezést.

Legyen a következő kifejezés:

Ebben az esetben először a B változó értékét hozzáadjuk a C-hez, majd 10 lesz levonva az összegből. Ennek a kifejezésnek az üzemeltetői ugyanolyan prioritással rendelkeznek, és ezért szigorúan balra kell irányulni.

Most vegye figyelembe az ilyen kifejezést:

Itt, az első fog végezni szorzata értékének C 10, és csak ezután a b érték hozzáadódik az eredményt. A szorzótermelőnek nagyobb prioritása van, mint az addíciós üzemeltető, így a "szigorúan balra" sorrend megszakad.

A megbízóüzemeltetők legalacsonyabb prioritása. Ezért kiszámítják a kifejezést, majd az eredmény egy változóhoz van hozzárendelve.

BAN BEN Általánosságban elmondható, hogy az összes üzemeltető teljesítésének alapelve a következő: az első üzemeltetők magasabb prioritásúak, és csak később alacsonyabbak. Az azonos prioritású operátorokat a sorrendben (balról jobbra) végezzük.

BAN BEN asztal. 14.9 Az általunk vizsgált üzemeltetők a prioritások sorrendjében szerepelnek.

14.9. Táblázat. Az üzemeltetők prioritása (csökkenő sorrendben)

Üzemeltetők

Leírás

++ - - ~! Típusú.

Növekmény, csökkenés, jelváltozás, logikai nem, definíció

Szorzás, divízió, egyensúly megteremtése

Kiegészítés és sor összeolvasztása, kivonás

Az üzemeltetők összehasonlítása

Logikai I.

14. fejezet. Bevezetés a webes programozásba. JavaScript nyelv

14.9. Táblázat (vége)

Üzemeltetők

Leírás

Logikus vagy

Feltételes operátor (lásd alább)

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

Hozzárendelés, egyszerű és összetett

FIGYELEM!

Emlékezzen erre a táblára. Az üzemeltetők hibás eljárása nehéz hibákat okozhat, amelyekben a külsőleg megfelelő kifejezés helytelen eredményt ad.

De mi van, ha meg kell szakítanunk az üzemeltetők végrehajtásának szokásos sorrendjét? Használunk zárójeleket. Egy ilyen zárójelben lévő bejegyzéssel az üzemeltetők először végzik:

a \u003d (B + C) * 10;

Itt először a B és C változók értékeinek hozzáadása befejeződik, majd a kapott mennyiséget megszorozzák 10-vel.

A zárójelben zárt üzemeltetők elsőbbséget élveznek. Ezért a többszörös zárójeleket gyakran használják:

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

Itt az üzemeltetők ilyen sorrendben kerülnek végrehajtásra:

1. Addíció B és C.

2. A kapott összeg megszorozódása 10.

3. kivonja a D-t a munkából.

4. A 2. különbség megosztása.

5. 9-ben a magánszemélynek.

Ha eltávolítja a zárójeleket:

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

az üzemeltetők végrehajtásának sorrendje:

1. C és 10 szorzás.

2. D-t 2.

3. Add hozzá B és C és 10.

4. Kivonás a kapott mennyiségű magánszedésbőld 2.

5. A kapott 9-et a kapott különbséghez igazították.

Teljesen eltérő eredményt kap, ugye?

  • Meghatározatlan: meghatározatlan
  • Null: "objektum"
  • Boolean: "Boolean"
  • Szám: "szám"
  • String: "string"
  • Funkció: "Funkció"
  • Minden más: "objektum"

A táblázathoz a következő észrevételeket kell hozzáadni:

1. NULL \u003d\u003d\u003d "objektum" típusa.

Elméletileg itt van egy finom pillanat. A statikus gépeléssel rendelkező nyelveken az objektum típusváltozó nem tartalmazhat objektumot (, nulla, nulla mutató).

Gyakorlatilag - a JavaScript kényelmetlen. Ezért az ES 5.1-es fejlesztők intuitívabbá válnak: NULL \u003d\u003d\u003d "NULL".

De mivel még mindig van egy ES3 körük, ne tévedjünk, például, például:

/ * A funkció néhány objektumot keres, és visszaadja, vagy , ha semmi sem található * / funkciókeresés () () var obj \u003d keresés (); ha (typeof obj \u003d\u003d\u003d\u003d "objektum") (// tényleg találtunk egy objektumot (hiba) obj.method ();)

2. Ne felejtsük el a Wrapper objektumokat (új szám típusa (5) \u003d\u003d\u003d "objektum").

3. És ne felejtsd el, hogy a megfelelő böngészők hozzanak létre semmit a fogadó objektumokkal.

Ne lepődj meg, hogy a Safari tartósan tartja HTMLCollection a funkció típusát, és az IE korábbi, mint a 9. verzió tartani a kedvenc Alert () függvény objektum. A króm is használta a Hegexp funkciót a funkcióhoz, de most úgy tűnik, hogy alkotkozik és válaszol.

tostring ()

Megpróbálja megtudni az értéket a tostring () módszer szerint értelmetlen. Minden "osztályban", ez a módszer felülbírálható.

A hibakeresési információk kimenetére a módszer jó, de a változó típus nem határozza meg.

Object.prototype.tostring ()

Bár toString felülbírálja a konkrét „osztály”, még mindig annak bevezetését Object. Próbáljuk meg használni:

Konzol.log (objektum .prototype .tostring .call (érték));

konzol.log (object.prototype.tostring.call (érték));


Clinton hígítja ezt a pullomotint

Furcsa módon ez a módszer meglepően jól működik.

Skaláris típusokhoz, visszatéréshez ,,,,

A vicces dolog az, hogy még az új szám (5), amelyen a Typeof Scribbed itt visszatér.

Null és meghatározatlan módszer a hibák. Különböző böngészők visszatérnek, majd várhatóak, majd általában. Azonban könnyű meghatározni a két érték típusát és anélkül.

Érdekes elkezdődik, amikor megközelítjük az objektumokat (azok, amelyeknek típusa \u003d\u003d\u003d "objektum").

a beépített tárgyak gyakorlatilag egy bangdal dolgoznak ki:

  • {} —
  • Dátum -
  • Hiba -
  • Regexp -

Az egyetlen, ami kiesik az érvek listájából, ami ez az.
A fogadó tárgyakkal ismét rosszabb.

Az IE-ben a DOM objektumok csak a 8. verzióból származnak, majd nem a végéig. Ezért az IE 6-8, e tárgyak (HTMLCollection, Domelement, TextNode, és ugyanabban az időben Dokumentum és Window) egyszerűen hajtja.

Az összes többi böngészőben (beleértve az IE9-et) a tótrés eredményével már csinálhat valamit. Bár minden nem könnyű is: a htmlcollection ott van. Ablak - akkor, akkor. De ebből már megpróbálhatsz izgatni valamit.

Nehézbb a DOMELEMENT: A formában megjelenik az egyes címkék formátuma. De itt rendszeresen segít nekünk.

Más fogadó tárgyakkal (a helyszínen és a navigátor tesztekben) ugyanazon a történetről. Mindenhol, kivéve az IE, azokat sorak szerint lehet azonosítani.

Az objektum használatával. Prototype.tostring ():

1. Ennek lehetőségét a szabvány nem szenteli. És inkább örülnünk kell, hogy minden olyan jól működik, és nem zúzzák meg néhány hibát.

2. típusának meghatározása a szintaxis minta a húr által visszaadott módszer, amely egyáltalán nem, hogy milyen típusú, és még okozott a létesítményben, amelyekre nem vonatkozik, hagy némi csapadékot a zuhany.

3. A régi, azaz, azaz látható, a fogadó objektumok általában nem azonosíthatók.

Ez azonban teljesen működő dolog, ha más eszközökkel együtt használják.


Tervezők

És végül, tervezők. Ki tudja jobban mondani a JS "osztály" tárgyról, ha nem a tervezője?

Null és nincs meghatározva nincs wapper tárgyak vagy tervezők.

A fennmaradó skaláris típusai a wrapper-t kaphat egy konstruktorhoz:

(5) .constructor \u003d\u003d\u003d szám; (Szám .nan) .constructor \u003d\u003d\u003d szám; (True) .constructor \u003d\u003d\u003d Boolean; ("String") .constructor \u003d\u003d\u003d String;

(5) .constructor \u003d\u003d\u003d szám; (Szám.nan) .constructor \u003d\u003d\u003d szám; (True) .constructor \u003d\u003d\u003d Boolean; ("String"). Constructor \u003d\u003d\u003d String;

De a példány nem jár el itt:

5 példányszám; // hamis szám .nan példányszám; // hamis igazi példány logikai; // hamis "string" példány; // Hamis

5 példányszám; // hamis szám.nan példányszám; // hamis igazi példány logikai; // hamis "string" példány; // Hamis

(A WCSYOF hosszúké válik az új szám (5))

A funkciók (amelyek szintén tárgyak) és példányak:

Konzol.log ((funkció () ()) példány funkció); // true console.log ((funkció () ()) .constructor \u003d\u003d\u003d funkció); // igaz.

konzol.log ((funkció () ()) példány funkció); // true console.log ((funkció () ()). Constructor \u003d\u003d\u003d funkció); // igaz.

Az összes beágyazott osztályt is könnyen azonosítja a tervezők: tömb, dátum, regexp, hiba.

Az egyik probléma itt argumentumokkal történik, amelynek konstruktorja.

És a második pedig maga a tárgy, vagy inkább a felhasználó által létrehozott objektum tulajdonítható.

Tehát csak az alapobjektumot definiálhatja:

oBJ példány objektum;

A definíció egyik változatjaként - az összes lehetséges típus (tömb, hiba) mozgatása, és ha sem az alá nem haladja alá - "objektum".

Tervezők és fogadó objektumok

A fogadó objektumok rosszabbak.

Kezdjük azzal, hogy azaz addig, amíg a 7. verzió befogadó nem veszi figyelembe őket egyáltalán normál objektumok. Egyszerűen nincsenek tervezők és prototípusok (minden esetben a programozó nem éri el őket).

Más böngészőkben jobbak. A tervezők, és meghatározhatja az értékosztályt. Ezeket csak különböző böngészőkben hívják különböző módon. Például a Htmlcollection esetében a tervező htmlcollection vagy nodelist, vagy akár nodelistconstructor.

Meg kell határoznia az alaptervezőt a Dombementhez. Az FF-ben, ez például a htmlement, amelyből htmlessivement és mások már örököltek.

A Firefox a Firefoxba kerül a 10. verzió és az Opera alatt 11 alatt.

konstruktor.name.

Több konstruktornak van olyan neve, amely hasznos lehet.

Tartalmazza a tervező funkció nevét, például (5) .constructor.name \u003d\u003d\u003d "szám".

De:
1. Az IE-ben még a 9. sem is.
2. A fogadó tárgyakban a böngészőket újra megint nyomják (és gyakran nem rendelkeznek ilyen tulajdonsággal). Az Opera-ban a Domeletement a tervező neve általában.prototípus.
3. Az érvek ismét "objektum".

következtetések

Egyik a bemutatott módszerek ad száz százalékos meghatározása típusú / osztályú érték minden böngészőben. Azonban az összesített, amit megengednek.

A közeljövőben megpróbálom összegyűjteni az összes adatot a jelekbe, és példát mutat a definíció funkcióra.

JavaScript. vagy JS. (Rövidítve) Nem egyszerű nyelv és újvárosi fejlesztők nem fognak azonnal tudni róla. Először felismerik az alapokat, és minden színesnek és szépnek tűnik. Egy kicsit mélyebbre keres, a JavaScript tömbök, tárgyak, visszahívások és minden olyan, mint a gyakran teszi az agyat.

A JavaScript fontos, hogy helyesen ellenőrizze a változó típusát. Tegyük fel, hogy tudni szeretné, hogy egy változó egy tömb vagy tárgy? Hogyan ellenőrizheti igaza? Ebben az esetben vannak trükkök az ellenőrzés során, és ez lesz ez a bejegyzés. Azonnal folytassanak.

Változó típusellenőrzés

Például ellenőriznie kell egy objektumváltozó, egy tömb, karakterlánc vagy szám. Ehhez használhatja a Typefi-t, de nem mindig adja meg az igazságot, és az alábbi példában megmutatom, miért.

Ezt a példát az élénken megmutatom, hogy miért nem mindig a megfelelő választás.

Var _Comparison \u003d (string: "string", int: 99, úszó: 13.555, objektum: (Hello: "Hi"), tömb: új tömb (1, 2, 3)); // visszatér egy tömböt a var _objkeys object \u003d object.keys (_Comparison) gombokkal; mert (var i \u003d 0; i<= _objKeys.length - 1; i++) { // выведем в консоль тип каждой переменной console.log(typeof _comparson[_objKeys[i]]); }

Kódfeltétel Eredmény:

String szám száma objektum objektum

Jobb? - Természetesen nem. Két probléma van. Mindegyikük részletesen ismertetjük és javasoljuk.

Első probléma: úszási szám, kimenet a számként

Összehasonlítás.Float nem szám, és a szám helyett lebeg.

Var _floatnumber \u003d 9.22; var _notfloatumber \u003d 9; Konzol.log (ISFloat (_floatnumber)); Konzol.log (isfloat (_notfloatumber)); Konzol.log (isfloat (")); Funkció ISFloat (n) (visszaadási szám (n) \u003d\u003d\u003d n && n% 1! \u003d\u003d 0;)

Az ISFLOAT () funkció az összes érték ellenőrzését végzi a lebegőpontos számokhoz. Először ellenőrizzük, hogy a változó egyenlő-e n. szám (szám (n) \u003d\u003d\u003d n), és ha igen, akkor egy másik érvényesítési ellenőrzés a maradékkal, és ha van maradék, akkor a BuleVa visszatér ( igaz. vagy hamis) Eredmény (N% 1! \u003d\u003d 0).

A fenti példában visszatér igaz., hamis és hamis. Az első érték úszó.típus, a második nem - ez a szokásos szám és az utolsó, csak egy üres karakterlánc, amely nem felel meg a szabályoknak.

Második probléma: A tömböt objektumként határoztuk meg

Az első példában a tömb objektumként jelenik meg, és ez nem túl jó, mivel néha ezt a bizonyos típusú és semmi másra kell használnia.

Számos módja van annak, hogy ellenőrizze a változó a tömb típusát.

Első lehetőség (jó lehetőség). Ellenőrizze az adattovábbítást a tömbhöz a példányban ().

VAR DATA \u003d új tömb ("Hello", "Világ"); Var Isarr \u003d Adatszerzés tömb;

Második verzió (jó opció). A tömb.isaray () módszer visszaadja a logikai értéket, amely attól függ, hogy a változó tömb vagy sem ().

VAR DATA \u003d új tömb ("Hello", "Világ"); var Isarr \u003d Array.ISarray (adatok);

Harmadik lehetőség (a legjobb, de hosszú). A kényelem érdekében így működik. Az objektum használatával. Ha az eredmény object.prototype.tostring.call (adatok) nem egyenlő a változó nem tömb ().

VAR DATA \u003d új tömb ("Hello", "Világ"); var isarr \u003d object.prototype.tostring.call (adatok) \u003d\u003d ""; Konzol.log (ISARR);

Az utolsó eredmény egy kényelmes funkció formájában:

Funkció Isarray (adatok) (Visszatérési objektum.prototype.tostring.call (adatok) \u003d\u003d "")

Most hívhatod az Isarray () funkciókat és egy argumentumot, hogy egy tömböt vagy valami mást állítson be, és láthassa az eredményt.

Utólag

A felvétel meglehetősen nagy, mint eredetileg gondolta. De elégedett vagyok vele, mert röviden és egyértelműen leírja a nehézségeket, amikor ellenőrzi a változókat a JavaScriptben és hogyan juthat el körülöttük.

Ha bármilyen kérdése van - írja le az alábbiakat erre a rekordra. Örülök, hogy segítek.

Operátor Típusú. Visszaadja az operandum típusát jelző karakterláncot.

Szintaxis

Az operand az üzemeltető típusát követi:

Típusú. operand.

Paraméterek

operand. Ez egy objektumot vagy primitív kifejezést, amelynek típusát vissza kell adni.

Leírás

Az alábbi táblázat a lehetséges visszaadott típusú értékeket mutatja. A típusokról és a primitívekről szóló további információk az oldalon találhatók.

Példák

// számok 37 \u003d\u003d\u003d "szám"; Típus 3.14 \u003d\u003d\u003d "szám"; Típus (42) \u003d\u003d\u003d "szám"; Math.ln2 \u003d\u003d\u003d "szám"; Infinity típus \u003d\u003d\u003d "szám"; NAN típus \u003d\u003d\u003d "szám"; // annak ellenére, hogy "nem-a-szám" (nem szám) típusú szám (1) \u003d\u003d\u003d "szám"; // Soha ne használja ezt a bejegyzést! // String Typeof "\u003d\u003d\u003d" string "; "BLA" \u003d\u003d\u003d "string" typeof; "1" \u003d\u003d\u003d "string" típusú; // Kérjük, vegye figyelembe, hogy a karakterlánc belsejében lévő számnak még mindig van egy sztring típusa (1. típus) \u003d\u003d\u003d "string"; // A Typeof mindig visszatér ebben az esetben a String String ("ABC") \u003d\u003d\u003d "string"; // Soha ne használja ezt a bejegyzést! // booleans type ur \u003d\u003d\u003d "Boolean"; FALSEF \u003d\u003d\u003d "Boolean"; Boolean típus (TRUE) \u003d\u003d\u003d "Boolean"; // Soha ne használja ezt a bejegyzést! // Syms Symbols Symbol () \u003d\u003d\u003d "szimbólum" típusú szimbólum ("foo") \u003d\u003d\u003d "szimbólum" típusú szimbólum. A DECOREDBUTUNDEFINEFINEFINEVARILIBLE \u003d\u003d\u003d "nem definiált"; UndeclaredVariable \u003d\u003d\u003d "undefined" típus; // Tárgyak típusa (A: 1) \u003d\u003d\u003d "objektum"; // az array.isarray vagy object.prototype.tostring.call // a szokásos objektumok és típusok megkülönböztetése és a \u003d\u003d\u003d objektum "tömbök között; Új dátumot () \u003d\u003d\u003d "objektum"; //, hogy az alacsonyabb vezet hibákhoz és problémákhoz. Ne használja! Új logikai (true) \u003d\u003d\u003d "objektum" típusa; Új szám betartása (1) \u003d\u003d\u003d "objektum"; Új karakterlánc ("ABC") típusa \u003d\u003d\u003d "objektum"; // Funkciók Típus funkció () () \u003d\u003d\u003d "függvény"; C. osztály () \u003d\u003d\u003d "funkció"; Math.sin \u003d\u003d\u003d "funkció" típusa;

nULLA

// Meghatározták a NULL \u003d\u003d\u003d "objektum" JavaScript típusának születését;

A JavaScript első megvalósításában az értékeket páros címke típusával és értékével mutatták be. Az objektumok címke címke 0. NULL volt nulladerként (0x00 a legtöbb platformon). Következésképpen a NULL típusú címke típusa nulla volt, így a Typeof visszatérési értéke fiktív. ()

A korrekciót az Ecmascript (leállításon keresztül) megkérdezték, de elutasították. Ez arra a tényre vezetne, hogy a NULL \u003d\u003d\u003d "NULL" típus.

Az új üzemeltető használata

// Az "Új" használatával létrehozott összes funkciótervezõ lesz a "Object" var string \u003d új karakterlánc ("string"); var num \u003d új szám (100); Typeof str; // visszatérés "objektum" típusú szám; // vissza fog térni az "Object" //, de van egy kivétel a funkció VAR Func \u003d új funkció () konstruktor; Func típus; // visszatérés "Funkció"

Rendszeres kifejezések

A rendszeres kifejezések nem szabványos kiegészítések voltak néhány böngészőben.

Típus / s / \u003d\u003d\u003d "függvény"; // Chrome 1-12 nem egyezik az ecmascript 5.1 típusú / s / \u003d\u003d\u003d "objektum"; // A Firefox 5+ megfelel az Ecmascript 5.1-nek

Az ideiglenes halott zónákhoz kapcsolódó hibák

Az Ecascript 2015 előtt garantálták, hogy a típusú üzemeltető visszaad egy karakterláncot bármely olyan operandusra, amellyel hívták. Ez megváltoztatta a nem alázatos LET és CONST hirdetések hozzáadása után blokk a láthatóság területén. Most, ha a változókat a Let és Const használatával deklarálják, és számukra az osztálynyilatkozati egységben betöltött típusú, de a bejelentés előtt a referencierreerror kiadása. A viselkedés eltér a be nem jelentett változóktól, amelyek esetében a típusok "nem definiáltak". A láthatóságú blokkterületű változók az "ideiglenes halott zónában" vannak, amelyek a blokk elejétől a változók nyilatkozatáig tartanak. Ebben a zónában a változókhoz való hozzáférés kísérletét kivételt dobják ki.

UndeclaredVariable \u003d\u003d\u003d "undefined" típus; NewletVarable típusú; Legyen NewletVarable; // weboldalt újoncstervarable; CONST NewConstVarble \u003d "hello"; // ReferenceError

Kivételek

Minden aktuális böngészőben van egy nem szabványos dokumentum.all host objektum, amely meghatározatlan.

Dokumentum typeof.All \u003d\u003d\u003d "undefined";

Bár a specifikáció lehetővé teszi saját típusú típusát a nem szabványos egzotikus objektumok esetében, meg kell adni, hogy ezek a nevek eltérjenek az előre definiált. A dokumentum, amikor a dokumentumot meghatározta, a szabályok kivételes megsértése a szabályok.

Előírások

Leírás Állapot Hozzászólások
Ecmascript legújabb tervezet (ECMA-262)
Tervezet
ECMASSCRIPT 2015 (6. kiadás, ECMA-262)
Meghatározás "A típusú üzemeltető" ebben a specifikációban.
Alapértelmezett
Ecmascript 5.1 (ECMA-262)
Meghatározás "A típusú üzemeltető" ebben a specifikációban.
Alapértelmezett
Ecmascript 3. kiadás (ECMA-262)
Meghatározás "A típusú üzemeltető" ebben a specifikációban.
Alapértelmezett
Ecmascript 1. kiadás (ECMA-262)
Meghatározás "A típusú üzemeltető" ebben a specifikációban.
Alapértelmezett Kezdeti meghatározás. A JavaScript 1.1

Kompatibilitás a böngészőkkel

Frissítse a kompatibilitási adatokat a Githubon

SzámítógépekMobilszerver
Króm.Él.Firefox.Internet böngésző.Opera.Szafari.Android webview.Chrome az Android számáraFirefox az Android számáraOpera az Android számáraSzafari az iOS-on.Samsung InternetCsomópont.js.
Típusú.Króm. Teljes támogatás 1 Él. Teljes támogatás 12 Firefox. Teljes támogatás 1 AZAZ Teljes támogatás 3 Opera. Teljes támogatás IgenSzafari. Teljes támogatás IgenWebview Android Teljes támogatás 1 Chrome Android Teljes támogatás 18 Firefox Android Teljes támogatás 4 Opera Android Teljes támogatás IgenSzafari ios. Teljes támogatás IgenSamsung Internet Android Teljes támogatás 1.0 nodejs. Teljes támogatás Igen

Legenda

Teljes támogatás Teljes támogatás

IE-specifikus fogalmak

Az IE 6, 7 és 8, sok gazda objektum objektum, de nem jellemző. Például.