Leaf Skrevet 26. mai 2006 Rapporter Del Skrevet 26. mai 2006 (endret) Jeg spør ganske enkelt om hva Eval funksjonen gjør.. Takker for svar! Jeg vet jeg kunne søkt på google, men fant bare på engelsk.. Endret 26. mai 2006 av Leaf Lenke til kommentar
gnab Skrevet 28. mai 2006 Rapporter Del Skrevet 28. mai 2006 eval() tar en streng som argument og kjører denne som Javascript-kode. For eksempel vil eval("alert(\"test\");"); gjøre det samme som om du bare hadde skrevet alert("test"); Lenke til kommentar
Gjest Slettet-IHWlGMJn Skrevet 20. august 2007 Rapporter Del Skrevet 20. august 2007 (endret) Lurer på det samme. Har som leaf gjorde, søkt etter det, men skjønner fortsatt ikke helt hva som faktisk skjer... Hva brukes egentlig eval til? Og javascript.. det har da ikke noe med det å gjøre? Endret 20. august 2007 av Slettet-IHWlGMJn Lenke til kommentar
eiden84 Skrevet 20. august 2007 Rapporter Del Skrevet 20. august 2007 Noen programmeringsspråk blir "tolket" på direkten, de blir altså ikke kompilert på forhånd. Javascript er et slikt språk. Du finner eval i php, javascript og vbscript (og helt sikkert flere). Eval brukes f. eks til å kjøre javascript-kode i fobindelse med ajax. Lenke til kommentar
luxus Skrevet 20. august 2007 Rapporter Del Skrevet 20. august 2007 (endret) Eval is Evil! Eval skal unngås så langt det er mulig. Eneste stedet da jeg bruker det er når jeg skal parse JSON strenger over til JS objekter/arrayer. Dvs, selv da bruker jeg det ikke direkte; jeg bruker en ferdigskrevet parser som først sjekker strengen inn og ut før eval blir brukt. Eval er ineffektivt og tregt og gjør koden mindre sikker. Det blir på nett mange steder omtalt: The 'eval' method, and related constructs such as 'new Function', are extremely wasteful. They effectively require the browser to create an entirely new scripting environment (just like creating a new web page), import all variables from the current scope, execute the script, collect the garbage, and export the variables back into the original environment. Additionally, the code cannot be cached for optimisation purposes. eval and its relatives should be avoided if at all possible.(http://userjs.org/help/tutorials/efficient-code#evalevil) In the majority of cases, eval is used like a sledgehammer swatting a fly -- it gets the job done, but with too much power. It's slow, it's unwieldy, and tends to magnify the damage when you make a mistake. Please spread the word far and wide: if you are considering using eval then there is probably a better way. Think hard before you use eval. (http://blogs.msdn.com/ericlippert/archive/2003/11/01/53329.aspx) The eval function is the most misused feature of JavaScript. Avoid it.(http://javascript.crockford.com/code.html) Endret 20. august 2007 av luxus Lenke til kommentar
backup Skrevet 20. august 2007 Rapporter Del Skrevet 20. august 2007 Funksjonen eval kan brukes til så mangt, mellom annet til dette: <html> <head> </script> </head> <body> <textarea cols = 20 rows = 10 name = felt id = felt></textarea><br> <input type = button onclick = "eval(felt.innerText)"; value = Utfør> </body> </html> Kjør html-fila og skriv f.eks. følgende inn i text-feltet: var x = 25; var y = 77; var z = x * y; alert (z); Klikk så på Utfør-knappen. Du ser at med eval kan du mellom annet få en avansert kalkulator på websida di. Prøv med mer kompliserte regneuttrykk! Lenke til kommentar
___ Skrevet 20. august 2007 Rapporter Del Skrevet 20. august 2007 Ser at du har fått noen svar allerede, men jeg slenger meg på likevel. Eval er en funksjon som evaluerer (eller kjører) koden du sender inn som parameter. Følgende linje vil åpne en alert-boks med tallet 3: var a = 1; alert(eval('a + 2')); Følgende kode vil også åpne en alert-boks med tallet 3: var a = 1; eval('a = a + 2; alert(a)'); Første kodesnutt viser at eval() kan returnere en verdi, basert på et funksjonsuttrykk, og andre kodesnutt viser at eval() også kan KJØRE kode. Som en annen i denne tråden har nevnt, så benyttes eval() ofte til f.eks. Ajax. På den måten at man sender en XMLHTTPRequest til en server, som så sender en streng med JavaScript-kode tilbake. Denne strengen kjører man da med eval()-funksjonen. Det at eval() kan KJØRE kode, er nok til at mange betrakter funksjonen som direkte usikker. Nå er det jo ikke så fryktelig mye galt man kan få til med JavaScript pga diverse begrensninger i de forskjellige browserne, men jeg kan langt på vei forstå den sunne skepsis enkelte likevel har. Mange mener at bruken av eval() er et tegn på dårlig design, det vil si at man prøver å løse en oppgave på feil måte. eval() kan i mange tilfeller spare deg for mange kodelinjer, men du får til gjengjeld kode som kan være vanskelig å vedlikeholde, og ikke minst debugge. Hilsen Werner Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå