Eval () - JavaScript, MDN

visszatérési érték

Értékét adja vissza a kódot továbbítják a funkciója, mint a húr. Ha a kód nem tér vissza - vissza fog térni értéke határozatlan.

eval () - a függvény a globális objektumot.

eval () lehet használni értékének kiszámításához az aritmetikai kifejezés rögzített egy string formában, később végrehajtását. Tegyük fel, van egy x változó. Lehetőség van, hogy elhalasztja a kifejezés kiértékelésének, mely x. Ha a kifejezés van beállítva, hogy egy változó, mint egy karaktersorozatot (például, „3 * x + 2”), majd hivatkozhat a eval () egy későbbi pontján a kódot.

Ha a neki átadott eval (). nem karakterlánc, az eval () visszaadja változatlan. A következő példa definiál egy konstruktort karakterlánc. és eval () nem számítja ki egy kifejezés értékét rögzítik egy string formában, és visszatér az objektum a String.

Ezt a korlátozást a könnyű megkerülni segítségével toString ().

Ha ön használ eval közvetve, amelyben ez egy linken keresztül, ahelyett, hogy egyszerűen eval, az ECMAScript 5 működik a globális hatókörű, nem helyi; ez azt jelenti, eval hivatkoznak a globális hatókörű, és a kód kerül végrehajtásra otsutviem hozzáférés a helyi változók körén belül, amelyben nevezték.

eval () - a veszélyes funkciót, amely végrehajtja a kódot, megy minden a hívó kiváltságokat. Ha fut az eval () egy string, amely hatással lehet a támadók, futtathatja a rosszindulatú kódot a felhasználó a készüléket a jogokat a weboldal / bővítése. A legfontosabb, hogy a harmadik fél kódot lehet látni körét, amelyben az eval () hívták. ami oda vezethet, hogy a támadást, mint a funkció.

Mivel az eval (), általában lassabb alternatívák, mert ilyenkor JS tolmács, mivel sok más tervek vannak optimalizálva modern JS motor.

Van egy biztonságos (és gyors!) Eval alternatívák () közös használatra esetekben.

Hozzáférés az ingatlan

Nem kell használni az eval (). konvertálni a neveket az ingatlanok tulajdonságait. Figyelembe véve a következő példát, ahol egy objektum tulajdonság eléréséhez használt ismert csak a futásidőben. Ez megtehető eval:

Azonban az eval () nincs szükség. Tény, hogy a használata ellen a meglepetés. Ehelyett a hozzáférést a tulajdonságokat. ami gyorsabb és biztonságosabb:

Használjon funkció végrehajtása helyett kódrészletek

Lezárások is hasznos módja a funkciók paraméterek nélkül összefűzés.

Adatok átvitele helyett kód

Például változtassa meg a kiterjesztést létrehozott weblapok szokatlan, és a politika határozza meg a XPath. helyett JS kódot.

Kövesse korlátozott jogokkal kód

Ha azt szeretnénk, hogy végre a kódot, tekintve, hogy fut fokozott jogosultsággal. Ez a tanács elsősorban olyan bővítmények és XUL alkalmazásokat lehet használni erre Components.utils.evalInSandbox.

használata eval

A következő kód tartalmaz mindkét kifejezés eval (), amely visszaadja egy string 42. Az első határoztuk "x + y + 1"; A második - string "42".

Az utolsó kifejezés kiértékelése

eval () visszatér az érték az utolsó kifejezés végrehajtott

Eval Karakterláncként meghatározási funkció tartalmaz „(” és „)” előtag és az utótag

leírás

Köszönjük! Kérjük, ellenőrizze a mappát „Beérkezett üzenetek”, hogy erősítse meg az előfizetést.

Ha korábban nem erősítette meg az előfizetés a hírlevél a Mozilla, akkor meg kell csinálni. Kérjük, ellenőrizze a postaládájába, vagy spam a postafiók látni, hogy ez nem volt egy levél tőlünk.

Elrejtése a hírlevelet

Miért MDN másképp néz ki?

MDN változik, mely kizárólag a dokumentációt webes technológiákat. Mindegy nagy tartalmat, hogy itt maradjon; mi változás csak a vizuális elemek és a navigációs segítségével gyorsan megtalálja a dokumentációt az internetes technológiát.

De ne aggódj, MDN és a Mozilla még mindig együtt. Sőt, mi frissíteni csak a design MDN többször, hogy megfeleljenek az új logó és színek Mozilla.

Bővebben az újratervezés a poszt a blogunkon. Köszönjük, hogy a MDN!

Hide üzenetet az újratervezés

Kapcsolódó cikkek