Ketiga pernyataan (fungsi) Eval, Execute, dan ExecuteGlobal semuanya mengeksekusi ekspresi string, tetapi keduanya berbeda. Eval mengevaluasi ekspresi dan mengembalikan hasilnya.
Sintaks: [hasil = ]eval_r(ekspresi_r)
ekspresi_r adalah string ekspresi VBScript yang valid
Contoh:
Copy kode kodenya sebagai berikut:
respon.Tulis(eval_r(3+2)) 'Keluaran 5
3+2 diapit tanda kutip, menunjukkan bahwa itu adalah string, tetapi di mata Eval, ini dieksekusi sebagai ekspresi 3+2.
Execute mengeksekusi satu atau lebih pernyataan tertentu. Gunakan titik dua (:) untuk memisahkan beberapa pernyataan.
Sintaks: Jalankan pernyataan
Contoh:
Jalankan respons. Tulis(abc) 'Keluaran abc
Salin kode
respon.Write(abc) diapit tanda kutip untuk menunjukkan string
Namun di mata Execute, ini dieksekusi sebagai pernyataan respon.Write(abc).
ExecuteGlobal mengeksekusi satu atau lebih pernyataan tertentu dalam namespace global.
Sintaks: Jalankan pernyataan Global
Contoh:
Copy kode kodenya sebagai berikut:
redup c
c = variabel global
sub S1()
redup c
c = variabel lokal
Jalankan respon. Tulis(c) 'Keluarkan variabel lokal
Jalankan Respons global. Tulis (c) 'Keluarkan variabel global
sub akhir
Jalankan respon. Tulis(c) 'Keluarkan variabel global
panggilan S1()
Variabel c didefinisikan baik dalam lingkup global maupun dalam lingkup fungsi. Execute memutuskan untuk menggunakan variabel lokal atau variabel global sesuai dengan lokasinya, sedangkan ExecuteGlobal selalu hanya mengenali c dalam lingkup global.
Meringkaskan:
Eval hanya mengeksekusi satu pernyataan. Pernyataan tersebut mungkin mengembalikan nilai atau tidak.
Execute mengeksekusi satu atau lebih pernyataan dengan mengabaikan nilai kembalian dari pernyataan tersebut
ExecuteGlobal mengeksekusi satu atau lebih pernyataan dan mengabaikan nilai kembalian dari pernyataan tersebut. Ketika variabel global dan variabel lokal memiliki nama yang sama, variabel global selalu digunakan.
Melihat:
Dalam VBScript, = digunakan untuk penugasan dan perbandingan. Misalnya, a=b dapat dikatakan untuk menetapkan nilai b ke a, atau dapat dikatakan untuk menentukan apakah a dan b sama b) mewakili operasi penugasan atau perbandingan?
Ada konvensi di sini. Di Eval, a=b selalu berarti operasi perbandingan, dan di Execute dan ExecuteGlobal, selalu berarti penugasan.