Tuesday, July 3, 2012

eval()

Function.eval() digunakan untuk mengevaluasi apa saja yang direpresentasikan di dalam parameter expression.

Sintaks:

eval(expression)
  • Di mana expression adalah ekspresi valid yang akan diperlakukan sebagai kode JavaScript oleh interpreter. Jika nilai parameter expression bukanlah string, maka itu yang akan dikembalikan. Sebagai contoh, eval(5) akan mengembalikan nilai 5. Jika nilai parameter expression adalah string, interpreter mencoba untuk menginterpretasikan string tersebut seolah-olah adalah kode JavaScript.

Function.eval() adalah fungsi standard JavaScript 1.0+, JScript 1.0+, ECMAScript 1.0+ dan didukung Google Chrome Beta+, Firefox 1.0 (Gecko 1.7)+, Internet Explorer 3+, Netscape Navigator 2.0+, Opera 3.0+, Safari 1.0+.

Misalkan saya mempunyai variabel myString seperti ini:

var myString = "Halo!";

Jika saya mencoba menguji variabel di atas untuk banyaknya karakter di dalam tanda kutip dan tanpa melibatkan Function.eval(), maka string "(myString.length) == 5" yang akan dikembalikan:

document.write("(myString.length) == 5");

Tetapi jika saya melibatkan Function.eval() untuk mengevaluasi ekspresi "(myString.length) == 5", maka nilai boolean true yang akan dikembalikan:

document.write(eval("(myString.length) == 5"));

Nilai true dikembalikan, karena interpreter menganggap bahwa di atas adalah suatu kondisi (apakah banyaknya karakter dari variabel myString sebanyak 5) yang harus diuji kebenarannya dan tidak menganggap di atas adalah suatu string.

Contoh-contoh berikutnya anda perlu mencoba untuk memperhatikan output dari setiap ekspresi yang melibatkan Function.eval() dan yang tidak.

Berikut interpreter menganggap ekspresi "1 + 1" yang melibatkan Function.eval() adalah operasi tambah-tambahan, yaitu 1 ditambah 1 dan hasilnya adalah 2:

document.write("1 + 1"); // "1+1" document.write(eval("1 + 1")); // 2

Contoh di bawah ini interpreter menganggap ekspresi 'myNum' yang melibatkan fungsi Function.eval() adalah perwakilan variabel yang harus ditampilkan nilainya:

var myNum = 12345; document.write("myNum"); // "myNum" document.write(eval("myNum")); // 12345

Contoh di bawah ini interpreter menganggap ekspresi "document.write('Halo!')" yang melibatkan fungsi Function.eval() adalah perintah string 'Halo!' harus dituliskan ke halaman oleh metode write():

eval("document.write('Halo!')"); // "Halo!"