คำสั่งทั้งสาม (ฟังก์ชัน) Eval, Execute และ ExecuteGlobal ล้วนดำเนินการนิพจน์สตริง แต่จะแตกต่างกัน Eval ประเมินนิพจน์และส่งกลับผลลัพธ์
ไวยากรณ์: [result = ]eval_r(expression_r)
expression_r คือสตริงของนิพจน์ VBScript ที่ถูกต้อง
ตัวอย่าง:
คัดลอกรหัสรหัสดังต่อไปนี้:
response.Write (eval_r (3 + 2)) 'เอาต์พุต 5
3+2 อยู่ในเครื่องหมายคำพูด ซึ่งระบุว่าเป็นสตริง แต่ในสายตาของ Eval จะดำเนินการเป็นนิพจน์ 3+2
Execute ดำเนินการคำสั่งที่ระบุตั้งแต่หนึ่งคำสั่งขึ้นไป ใช้เครื่องหมายทวิภาค (:) เพื่อแยกคำสั่งหลายรายการ
ไวยากรณ์:ดำเนินการคำสั่ง
ตัวอย่าง:
ดำเนินการตอบกลับเขียน (abc) 'เอาต์พุต abc
คัดลอกรหัส
response.Write(abc) อยู่ในเครื่องหมายคำพูดเพื่อระบุสตริง
แต่ในสายตาของ Execute มันถูกดำเนินการเป็นคำสั่ง response.Write(abc)
ExecuteGlobal ดำเนินการคำสั่งที่ระบุตั้งแต่หนึ่งคำสั่งขึ้นไปในเนมสเปซส่วนกลาง
ไวยากรณ์:คำสั่ง ExecuteGlobal
ตัวอย่าง:
คัดลอกรหัสรหัสดังต่อไปนี้:
สลัวค
c = ตัวแปรโกลบอล
ย่อย S1()
สลัวค
c = ตัวแปรท้องถิ่น
ดำเนินการตอบสนอง เขียน (c) 'เอาท์พุทตัวแปรท้องถิ่น
ExecuteGlobal response.Write (c) 'ส่งออกตัวแปรโกลบอล
จบย่อย
ดำเนินการตอบสนองเขียน (c) 'ส่งออกตัวแปรโกลบอล
โทร S1()
ตัวแปร c ถูกกำหนดทั้งในขอบเขตส่วนกลางและในขอบเขตฟังก์ชัน Execute ตัดสินใจใช้ตัวแปรภายในเครื่องหรือตัวแปรส่วนกลางตามตำแหน่ง ในขณะที่ ExecuteGlobal จะรับรู้เฉพาะ c ในขอบเขตส่วนกลางเท่านั้น
สรุป:
Eval ดำเนินการเพียงคำสั่งเดียวเท่านั้น คำสั่งอาจส่งกลับค่าหรือไม่ก็ได้
Execute ดำเนินการคำสั่งตั้งแต่หนึ่งคำสั่งขึ้นไปโดยไม่สนใจค่าที่ส่งคืนของคำสั่งนั้น
ExecuteGlobal ดำเนินการคำสั่งตั้งแต่หนึ่งคำสั่งขึ้นไป และละเว้นค่าที่ส่งคืนของคำสั่งนั้น เมื่อตัวแปรส่วนกลางและตัวแปรท้องถิ่นมีชื่อเดียวกัน ตัวแปรส่วนกลางจะถูกใช้เสมอ
สังเกต:
ใน VBScript นั้น = ใช้สำหรับการกำหนดและการเปรียบเทียบ ตัวอย่างเช่น a=b สามารถพูดเพื่อกำหนดค่าของ b ให้กับ a หรืออาจกล่าวได้ว่าเพื่อกำหนดว่า a และ b เท่ากันหรือไม่ b) เป็นตัวแทนของการดำเนินการมอบหมายหรือเปรียบเทียบ?
มีแบบแผนอยู่ที่นี่ ใน Eval a=b หมายถึงการดำเนินการเปรียบเทียบเสมอ และใน Execute และ ExecuteGlobal จะหมายถึงการมอบหมายงานเสมอ