งบเบ็ดเตล็ด VBScript
VBScript มีข้อความสำคัญอื่น ๆ อีกสองสามอย่างเพื่อช่วยนักพัฒนาในการพัฒนาสคริปต์ที่มีประสิทธิภาพ ตารางต่อไปนี้แสดงชุดคำสั่งที่สำคัญดังกล่าว ในบทนี้เราจะพูดถึงข้อความเหล่านี้โดยละเอียดพร้อมตัวอย่าง
ประเภท | ชื่อฟังก์ชัน / ชื่อคำชี้แจง |
---|---|
ตัวเลือก | ตัวเลือกที่ชัดเจน |
รหัสเครื่องยนต์สคริปต์ | ScriptEngine |
ตัวแปร | IsArray, IsEmpty, IsNull, IsNumeric, IsObject, TypeName |
นิพจน์ | Eval ดำเนินการ |
คำชี้แจงการควบคุม | ด้วย ... ปิดท้ายด้วย |
ฟังก์ชันคณิตศาสตร์ | สุ่ม |
ตัวเลือกที่ชัดเจน
Option Explicit บังคับให้นักพัฒนาประกาศตัวแปรโดยใช้ Dim ก่อนที่จะใช้ในบางส่วนของโค้ด
ไวยากรณ์
Option Explicit
ตัวอย่าง
ถ้าเราใช้ Option Explicit และถ้าเราไม่ประกาศตัวแปรล่ามก็จะเหวี่ยงและผิดพลาด
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Option Explicit
Dim x,y,z,a
x = 10
y = 20
z = fnadd(x,y)
a = fnmultiply(x,y)
Function fnadd(x,y)
fnadd = x+y
End Function
</script>
</body>
</html>
ScriptEngine
ScriptEngineแสดงถึงรายละเอียดของภาษาสคริปต์ที่ใช้ นอกจากนี้ยังใช้ร่วมกับScriptEngineMajorVersion, ScriptEngineMinor Version, ScriptEngineBuildVersion ซึ่งให้เวอร์ชันหลักของเอ็นจิน vbscript เวอร์ชันรองคือเอ็นจิ้น vbscript และเวอร์ชันสร้างของ vbscript ตามลำดับ
ไวยากรณ์
ScriptEngine
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim scriptdetails
scriptdetails = " Version " & ScriptEngine & " - "
'For getting Major version, use ScriptEngineMajorVersion'
scriptdetails = scriptdetails & ScriptEngineMajorVersion & "."
'For getting Minor version, use ScriptEngineMinorVersion'
scriptdetails = scriptdetails & ScriptEngineMinorVersion & "."
'For getting Build version, use ScriptEngineBuildVersion'
scriptdetails = scriptdetails & ScriptEngineBuildVersion
Document.write scriptdetails
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Version VBScript - 5.8.16996
มันว่างเปล่า
ฟังก์ชัน IsEmpty ใช้เพื่อตรวจสอบว่านิพจน์ว่างหรือไม่ ส่งคืนค่าบูลีนIsEmptyส่งคืนค่า True หากตัวแปรไม่ได้เริ่มต้นหรือตั้งค่าเป็น Empty อย่างชัดเจน มิฉะนั้นนิพจน์จะคืนค่า False
ไวยากรณ์
IsEmpty(expression)
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, MyCheck
MyCheck = IsEmpty(var)
Document.write "Line 1 : " & MyCheck & "<br />"
var = Null ' Assign Null.
MyCheck = IsEmpty(var)
Document.write "Line 2 : " & MyCheck & "<br />"
var = Empty ' Assign Empty.
MyCheck = IsEmpty(var)
Document.write "Line 3 : " & MyCheck & "<br />"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Line 1 : True
Line 2 : False
Line 3 : True
IsNull
ฟังก์ชัน IsNull ใช้เพื่อตรวจสอบว่านิพจน์มีข้อมูลที่ถูกต้องหรือไม่ ส่งคืนค่าบูลีนIsNull ส่งคืน True หากตัวแปรเป็น Null มิฉะนั้นนิพจน์จะส่งกลับ False
ไวยากรณ์
IsNull(expression)
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, res
res = IsNull(var)
document.write "Line 1 : " & res & "<br />"
var = Null
res = IsNull(var)
document.write "Line 2 : " & res & "<br />"
var = Empty
res = IsNull(var)
document.write "Line 3 : " & res & "<br />"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Line 1 : False
Line 2 : True
Line 3 : False
IsObject
ฟังก์ชัน IsObject ใช้เพื่อตรวจสอบว่านิพจน์มี Object ที่ถูกต้องหรือไม่ ส่งคืนค่าบูลีนIsObject ส่งกลับค่า True หากนิพจน์มีประเภทย่อยของอ็อบเจ็กต์มิฉะนั้นนิพจน์จะส่งคืน False
ไวยากรณ์
IsObject(expression)
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim fso,b
b = 10
set fso = createobject("Scripting.Filesystemobject")
x = isobject(fso)
Document.write "Line 1 : " & x & "<br />"
y = isobject(b)
Document.write "Line 2 : " & y & "<br />"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Line 1 : True
Line 2 : False
IsNumeric
ฟังก์ชัน IsNumeric ใช้เพื่อตรวจสอบว่านิพจน์มีประเภทย่อยตัวเลขหรือไม่ ส่งคืนค่าบูลีนIsObject ส่งคืนค่า True หากนิพจน์มีประเภทย่อยตัวเลขมิฉะนั้นนิพจน์จะส่งกลับ False
ไวยากรณ์
IsNumeric(expression)
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim var, chk
var = 20
chk = IsNumeric(var)
Document.write "Line 1 : " & chk & "<br />"
var = "3.1415935745"
chk = IsNumeric(var)
Document.write "Line 2 : " & chk & "<br / >"
var = "20 Chapter 23.123 VBScript"
chk = IsNumeric(var)
Document.write "Line 3 : " & chk & "<br / >"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Line 1 : True
Line 2 : True
Line 3 : False
TypeName
ฟังก์ชัน TypeName ใช้เพื่อส่งคืนข้อมูลประเภทย่อยของตัวแปรของตัวแปร
ไวยากรณ์
TypeName(varname)
ฟังก์ชัน Typename สามารถส่งคืนค่าใด ๆ ต่อไปนี้
ไบต์ - ค่าไบต์
Integer - ค่าจำนวนเต็ม
Long - ค่าจำนวนเต็มยาว
ค่าทศนิยมเดี่ยวที่มีความแม่นยำเดียว
Double - ค่าทศนิยมที่มีความแม่นยำสองเท่า
สกุลเงิน - มูลค่าเงินตรา
ทศนิยม - ค่าทศนิยม
วันที่ - ค่าวันที่หรือเวลา
String - ค่าสตริงอักขระ
บูลีน - ค่าบูลีน
ว่างเปล่า - ค่าที่ยังไม่ได้เริ่มต้น
Null - ไม่มีข้อมูลที่ถูกต้อง
Object - ชื่อของวัตถุ
ไม่มีอะไร - ตัวแปรออบเจ็กต์ที่ยังไม่อ้างถึงอินสแตนซ์ออบเจ็กต์
Error
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim ArrVar(2), vartype
NullVar = Null ' Assign Null value.
vartype = TypeName(3.1450)
Document.write "Line 1 : " & vartype & "<br />"
vartype = TypeName(432)
Document.write "Line 2 : " & vartype & "<br />"
vartype = TypeName("Microsoft")
Document.write "Line 3 : " & vartype & "<br />"
vartype = TypeName(NullVar)
Document.write "Line 4 : " & vartype & "< br />"
vartype = TypeName(ArrVar)
Document.write "Line 5 : " & vartype & "<br />"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
Line 1 : Double
Line 2 : Integer
Line 3 : String
Line 4 : Null
Line 5 : Variant()
Eval
ฟังก์ชัน Eval เรียกใช้นิพจน์และส่งคืนผลลัพธ์เป็นสตริงหรือตัวเลข
ไวยากรณ์
Eval(expression)
นิพจน์อาร์กิวเมนต์อาจเป็นนิพจน์สตริงหรือตัวเลข ถ้าคุณส่งผ่านไปยังฟังก์ชัน Eval ซึ่งเป็นสตริงที่ไม่มีนิพจน์ตัวเลขหรือชื่อฟังก์ชัน แต่มีเพียงสตริงข้อความธรรมดาจะเกิดข้อผิดพลาดขณะทำงาน ตัวอย่างเช่น Eval ("VBScript") ทำให้เกิดข้อผิดพลาด
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Document.write Eval("10 + 10") & "<br />"
Document.write Eval("101 = 200") & "<br />"
Document.write Eval("5 * 3") & "<br />"
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
20
false
15
ดำเนินการ
คำสั่ง Execute ยอมรับอาร์กิวเมนต์ที่เป็นนิพจน์สตริงที่มีหนึ่งคำสั่งหรือมากกว่าสำหรับการดำเนินการ
ไวยากรณ์
Execute(expression)
ใน VBScript a = b สามารถตีความได้สองวิธี สามารถถือเป็นคำสั่งกำหนดโดยค่าของ x ถูกกำหนดให้กับ y นอกจากนี้ยังสามารถตีความเป็นนิพจน์ที่ทดสอบว่า a และ b มีค่าเท่ากันหรือไม่ หากเป็นเช่นนั้นผลลัพธ์จะเป็นจริง หากไม่เป็นเช่นนั้นผลลัพธ์จะเป็นเท็จ คำสั่ง Execute ใช้การตีความแรกเสมอในขณะที่คำสั่ง Eval ใช้คำสั่งที่สองเสมอ
ตัวอย่าง
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim x
x = "Global"
y = "VBScript"
Execute("x = y")
msgbox x
msgbox y
</script>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล. html เมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏบนหน้าจอ
VBScript
VBScript
ด้วย.. จบด้วย
คำสั่ง With ช่วยให้เราสามารถดำเนินการหลายชุดกับวัตถุที่ระบุโดยไม่ต้องเอ่ยชื่อวัตถุซ้ำแล้วซ้ำอีกอย่างชัดเจน
ไวยากรณ์
With (objectname)
statement 1
statement 2
statement 3
...
...
statement n
End With
ตัวอย่าง
เมื่อเรียกใช้สคริปต์ต่อไปนี้ Winword จะเปิดขึ้นและป้อนข้อความที่ระบุ
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Msg = "Vbscript" & vbCrLf & "Programming"
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
' Objects methods are accessed without requaliyfying the objects again.'
With objWord
.Documents.Add
.Selection.TypeText Msg
.Selection.WholeStory
End With
</script>
</body>
</html>
สุ่ม
คำสั่ง Randomize เริ่มต้นตัวสร้างตัวเลขสุ่มซึ่งเป็นประโยชน์สำหรับนักพัฒนาในการสร้างตัวเลขสุ่ม
ไวยากรณ์
Randomize [number]
ตัวอย่าง
เมื่อเรียกใช้สคริปต์ต่อไปนี้ Winword จะเปิดขึ้นและป้อนข้อความที่ระบุ
<!DOCTYPE html>
<html>
<body>
<script language = "vbscript" type = "text/vbscript">
Dim MyValue
Randomize
MyValue = Int((100 * Rnd) + 1) ' Generate random value between 1 and 100.
MsgBox MyValue
</script>
</body>
</html>
บันทึกสคริปต์ข้างต้นเป็น HTML และเมื่อเรียกใช้สคริปต์ใน IE ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น
42