Avatar billede olberd Nybegynder
14. juli 2000 - 15:49 Der er 2 kommentarer og
1 løsning

Hvad bruger man Eval() til ?

Se titel !
Avatar billede jumper Nybegynder
14. juli 2000 - 16:02 #1
eval() bliver brugt til at udføre en streng indeholdene noget Javascript kode, som om det stod der i forvejen. Dette er i særdeleshed nyttigt, når man vil generere sin kode dynamisk, da en streng kan ændres konstant.

Et eksempel:

alert('Hejsa')

kunne skrives som

eval("al" + "ert('hejs" + "a')")

Dette giver nogle særdeles kompetente muligheder, som stort set intet andet programmeringssprog har.

Ulempen er at når man bruger eval() til dynamisk at udføre noget kode, er der en lille smule tidsspilde (omkring et par millisekunder).

Hvis man skal udføre det samme stykke dynamiske kode om og om igen, kan man med fordel lave strengen til en funktion istedet.

test = new Function("al" + "ert('hejs" + "a')")

og så udføre det med

test()

Dermed bliver den interne kode til browserens Javascript engine kun genereret én gang, istedet for hver gang man kalder eval()

Se mere på

http://developer.netscape.com/docs/manuals/js/client/jsref/toplev.htm#1063795

/Thor
Avatar billede justincase Nybegynder
14. juli 2000 - 23:44 #2
Jumper >> Det er et stykke tid siden at jeg har set dig dukke op på de her sider.
Der var ellers en perle til netop dig, som jeg regnede med at du ville kunne besvare en del mere kompetent end mig. Erfaring med IE og så :
http://www.eksperten.dk/spm.asp?id=20855

olberd >> Sorry jeg bruger dit spm. til en personlig hilsen...
Faktisk er eval, eller lignende, ved at være en standard i de fleste script sprog. Som Jumper siger så tager den et lille ekstra stykke tid, fordi selve koden skal evalueres.

Du kan bruge eval til forståelse af setTimeout().

setTimeout("var a=1",1000);
betyder at variablen a bliver deklereret om et sekund, og sat til 1.
Dog med setTimeout() bliver evalueringen gjort globalt, i modsætning til en ren eval(), som saktens kan bruges internt i en funktion.

:)

JustinCase
Avatar billede jumper Nybegynder
17. juli 2000 - 16:30 #3
justincase >> Tja, jeg har haft travlt på det seneste ;). Det var da egentlig også en udmærket besvarelse du gav ham, pædagogisk og forklarende. Det eneste han manglede var et link til den specifikke side på msdn.

/Thor
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester