Windows - Fejlett funkciók a JavaScript nyelvben - folytatás

JavaScript suli 6. rész

forráskód letöltése
Újabb fejlett funkciókat mutatunk be a JScript nyelvből, mint amilyen a with kulcsszó vagy a feltételes fordítás. Felhívjuk még a figyelmet néhány olyan nyelvi tulajdonságra is, amelyek használata körültekintést igényel, és megtudhatjuk, hogy hibás működés esetén mi az, amivel tisztában kell lennünk, hogy megértsük a nyelv viselkedését.
Hibaelhárítás a Script-ekben
Minden programozási nyelvben akadnak olyan helyek, ahol csapdába eshetünk. Ha nem vigyázunk, minden nyelv sajátos meglepetéssel szolgál ebben a tekintetben. Vegyük például a nulla értéket: egy ilyen érték a JScriptben másként viselkedik, mint a C, vagy C++ nyelvekben.
A Script értelmezési sorrendje
A JScript értelmezése része a Web-böngésző HTML elemző folyamatának. Ezért ha Script-et helyezünk el egy dokumentum <HEAD> tag-jében, akkor ez értelmezésre kerül, mielőtt bármely <BODY> tag-et megvizsgálna. Ha vannak olyan objektumaink, amelyeket a <BODY> tag-ben hoztunk létre, akkor azok nem elérhetők a <HEAD> tag elemzése közben, és nem manipulálhatók Script-ből.
Figyelem! Ez a tulajdonság az Internet Explorer-re jellemző. Az ASP és a WSH különböző futtatási modellel rendelkezik (mint ahogy más kiszolgálók is).
A with kulcsszó
A with utasítás egy kényelmes címzési lehetőség objektumok tulajdonságaihoz, de nem használható ahhoz, hogy új tulajdonságot adjunk egy objektumhoz. Szintaxisa:
with (objektum)
utasítások
Példaként egy matematikai objektumot töltünk fel adatokkal, így a kód rövidebb, és könnyebben olvasható:
with (teglatest) {
hosszusag = 10
szelesseg = 15
magassag = 5
}
Feltételes fordítás
A feltételes fordítás lehetővé teszi, hogy a JScript nyelv új funkcióját használjuk anélkül, hogy feláldoznánk a korábbi verziókkal való kompatibilitást, amelyek nem támogatják ezeket a tulajdonságokat.
A feltételes fordítás a @cc_on utasítás segítségével aktiválható vagy a @if vagy @set utasítások használatával. Néhány tipikus esetben a használata tartalmazza a JScript új funkcióit, beágyazott nyomkövető támogatást a Script-ben és a kód futtatásának ellenőrzését.
Mindig tegyük a feltételes fordítási utasításokat kommentált szakaszba, így a kiszolgáló (mint amilyen a Netscape Navigator), amely nem érti azt, ki fogja hagyni. Itt egy példa.
/*@cc_on @*/
/*@if (@_jscript_version >= 4)
alert("JScript 4-es, vagy későbbi verzió ");
@else @*/
alert("Frissebb script motorra van szükség.");
/*@end @*/
Ez a példa speciális kommentár-elhatárolót használ, amely csak akkor használható, ha a feltételes fordítást a @cc_on aktiválta. Azok a Script motorok, amelyek nem támogatják a feltételes fordítást, csak azt az informáló szöveget fogják látni, amely tájékoztat arról, hogy frissebb Script motor szükséges.
Az alábbi előre definiált változók elérhetők feltételes fordításból. Ha egy változó nem igaz értékű, nem definiált, akkor NaN értékként viselkedik elérésekor.
Változó Leírás.
@_win32 Akkor igaz, ha Win32 rendszerben fut.
@_win16 Akkor igaz, ha Win16 rendszerben fut.
@_mac Akkor igaz, ha Apple Macintosh rendszerben fut.
@_alpha Akkor igaz, ha DEC Alpha processzor működik a gépben.
@_x86 Akkor igaz, ha Intel processzor található meg a gépben.
@_mc680x0 Akkor igaz, ha Motorola 680x0 processzorunk van.
@_PowerPC Igaz, ha Motorola PowerPC a processzor.
@_jscript Értéke mindig igaz.
@_jscript_build A JScript motor build sorszámát tartalmazza.
@_jscript_version A JScript verziószámát tartalmazza major.minor formátumban.
Mellékelt példánkban (peldak.html) a cikkben előforduló funkciók láthatók, ha a fájlt megtekintjük az Internet Explorer segítségével. Elsőként egy hibaüzenetet kapunk, ami arra példa, hogy a dokumentum <BODY> részében deklarált objektum a <HEAD> részből még nem elérhető.

Javascript suli cikksorozat