1 / 56

การเขียนโปรแกรมด้วยภาษาสคริปต์

การเขียนโปรแกรมด้วยภาษาสคริปต์. บรรยายโดย ศุภกฤษฏิ์ นิวัฒนากูล. วัตถุประสงค์. เมื่อจบบทเรียนนี้แล้วนักศึกษาสามารถ บอกองค์ประกอบและวิธีการเขียนโปรแกรมแบบใช้สคริปต์ได้อย่างถูกต้อง รู้คำสั่งที่ใช้ในการพัฒนาแอพพลิเคชันบนเว็บและเลือกใช้ได้อย่างถูกต้องและเหมาะสม. เนื้อหาของบทเรียน.

Download Presentation

การเขียนโปรแกรมด้วยภาษาสคริปต์

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การเขียนโปรแกรมด้วยภาษาสคริปต์การเขียนโปรแกรมด้วยภาษาสคริปต์ บรรยายโดย ศุภกฤษฏิ์ นิวัฒนากูล

  2. วัตถุประสงค์ เมื่อจบบทเรียนนี้แล้วนักศึกษาสามารถ • บอกองค์ประกอบและวิธีการเขียนโปรแกรมแบบใช้สคริปต์ได้อย่างถูกต้อง • รู้คำสั่งที่ใช้ในการพัฒนาแอพพลิเคชันบนเว็บและเลือกใช้ได้อย่างถูกต้องและเหมาะสม

  3. เนื้อหาของบทเรียน • Static web page และ Dynamic web page • Client-Side Script และ Server-Side Script • ภาษา VBScript • การเขียน ASP Script Code • ตัวแปร ค่าคงที่ และ Operator • คำสั่งควบคุมการทำงาน • ฟังก์ชันและโพซีเจอร์

  4. Static web page • เป็นเว็บเพจที่สร้างจากภาษา HTML • เนื้อหาของเว็บเพจจะไม่มีการเปลี่ยนแปลงจนกว่าจะมีผู้มาทำการแก้ไขที่เว็บเซิร์ฟเวอร์ • ไม่สามารถที่จะทำให้เนื้อหาเปลี่ยนแปลงได้โดยอัตโนมัติ

  5. Dynamic web page • เป็นเว็บเพจที่สร้างจากภาษา HTML ร่วมกับภาษาสคริปต์ เช่น JavaScript VBScript เป็นต้น • สามารถทำการเปลี่ยนแปลงเนื้อหาได้โดยอัตโนมัติ • ประเภทของ Dynamic web page • ประเภทที่ทำการประมวลผลที่บราวเซอร์ • ประเภทที่ทำการประมวลผลที่เซิร์ฟเวอร์ • ประเภทที่ทำการประมวลผลที่บราวเซอร์และเซิร์ฟเวอร์

  6. Client-Side Script • รูปแบบคำสั่ง <SCRIPT LANGUAGE=ภาษาสคริปต์> …คำสั่ง </SCRIPT> • ภาษาสคริปต์สามารถกำหนดได้เป็น VBScript, Jscript, JavaScript • ถ้าไม่กำหนด LANGUAGE จะถือว่าเป็น JavaScript

  7. ตัวอย่าง Client-Side Script <HTML> <BODY> ขณะนี้เวลาที่บราวเซอร์เท่ากับ <SCRIPT LANGUAGE=VBScript> <!— Document.Write Time --> </BODY> </HTML>

  8. Server-Side Script • รูปแบบคำสั่งแบบใช้เครื่องหมาย • <%…%> สำหรับ ASP ที่ใช้ VBScript • <%@LANGUAGE=JavaScript%> สำหรับ ASP ที่ใช้ JavaScript • <?PHP...?> สำหรับ PHP • รูปแบบคำสั่งแบบใช้แท็ก SCRIPT <SCRIPT LANGUAGE=ภาษาสคริปต์ RUNAT=SERVER> …คำสั่ง </SCRIPT>

  9. ตัวอย่าง Server-Side Script <HTML> <BODY> ขณะนี้เวลาที่เซิร์ฟเวอร์เท่ากับ <%=TIME%> </BODY> </HTML>

  10. ข้อเปรียบเทียบระหว่าง Client-Side Script และ Server-Side Script • ในกรณีที่ต้องการให้แอพพลิเคชันทำงานร่วมกันกับแอพพลิเคชันอื่น เช่น ฐานข้อมูล Server-Side Script จะมีความคล่องตัวมากกว่า • ผู้ใช้จะไม่เห็นคำสั่งของ Server-Side Script ทำให้ไม่เห็นคำสั่งพวกกฎเกณฑ์ทางธุรกิจและเงื่อนไข (Business Logic) หรือฟังก์ชันต่าง ๆ ซึ่งต่างจากการเขียนคำสั่งแบบ Client-Side ที่ผู้อื่นจะเห็นคำสั่งที่เขียน

  11. คำสั่งของ Client-Side ส่วนใหญ่จะเฉพาะเจาะจงกับบราวเซอร์ เช่นถ้าเขียนด้วย VBScript บราวเซอร์ Netscape จะไม่สนับสนุนยกเว้นต้องมี Plug-in ช่วย เป็นต้น แต่ถ้าเป็น Server-Side Script เราสามารถเขียนคำสั่งให้สร้าง HTML ที่เหมาะสมกับบราวเซอร์แต่ละชนิดได้ • การเขียนคำสั่งในลักษณะที่ติดต่อกับผู้ใช้ เช่น การสร้างเมนู ถ้าเขียนแบบ Client-Side Script การติดต่อจะเร็วกว่าเพราะว่าโค้ดอยู่ที่บราวเซอร์ ไม่ต้องติดต่อไปที่เว็บเซิร์ฟเวอร์

  12. การเขียนโค้ดแบบ Client-Side Script จะช่วยแบ่งเบาการทำงานของเว็บเซิร์ฟเวอร์ เนื่องจากโค้ดทำงานที่บราวเซอร์ ทำให้เว็บเซิร์ฟเวอร์สามารถรองรับปริมาณงานหรือบริการงานได้มากขึ้น

  13. การเลือกรูปแบบการเขียน Script • ในการสร้างเว็บแอพพลิเคชันที่ดีจะต้องใช้ทั้ง Client-Side และ Server-Side Script • Client-Side Script จะใช้ช่วยในการสร้างเว็บเพจที่มีลูกเล่น ติดต่อกับผู้ใช้และความสวยงาน • Server-Side Script จะใช้ในการเขียนโค้ดที่รับข้อมูลจากผู้ใช้มาเพื่อเป็นเงื่อนไข (Business Logics หรือ Business Rules) ในการที่จะสร้างเว็บเพจแล้วส่งกลับไปยังบราวเซอร์

  14. ภาษาคอมพิวเตอร์ทั่วไปภาษาคอมพิวเตอร์ทั่วไป • เมื่อเขียนโค้ดแล้วจะต้องคอมไพล์ (Compile) ให้เป็นแอพพลิเคชันที่มีไฟล์นามสกุล .EXE หรือ .COM ซึ่งเป็นแบบ Binary • สามารถเรียกไฟล์ .EXE หรือ .COM ให้ทำงานได้ทันทีบนปฏิบัติการที่สร้าง • ตัวอย่างภาษา เช่น Assembly, C, C++, Cobol, Fortran, Pascal, Visual Basic, Visual C++

  15. ภาษาสคริปต์ (Script) • โค้ดที่เขียนไม่สามารถคอมไพล์ (Compile) ให้เป็นไฟล์ .EXE หรือ .COM ได้ • โค้ดที่เขียนจะถูกตีความ (Interpreted) ผ่านซอฟต์แวร์พวก Script Engine ที่สนับสนุนภาษาสคริปต์นั้น ๆ • IE 5.0 สนับสนุนภาษา VBScript, JavaScript และ Jscript • IIS 5.0 และ ASP สนับสนุนภาษา VBScript และ Jscript

  16. สถาปัตยกรรมการทำงานของ ASP Test.asp http://www.sut.ac.th/test.asp Script Host (ASP.DLL) HTML Web Server Client VBScript Engine Jscript Engine

  17. ภาษา VBScript • พัฒนาขึ้นมาโดยบริษัท Microsoft เพื่อใช้ในการพัฒนาโปรแกรม • สามารถใช้ร่วมกับคำสั่งต่าง ๆ ของภาษา HTML เพื่อทำให้เว็บเพจทำงานได้มีประสิทธิภาพมากขึ้น • ภาษา VBScript เป็น subset ของภาษา Visual Basic ดังนั้น คำสั่งส่วนใหญ่จึงมีโครงสร้างคล้ายกับภาษา Visual Basic • ปัจจุบันภาษาสคริปต์เป็นเวอร์ชัน 5.0

  18. การเขียน ASP Script Code • เขียนในรูป Text File ที่มีนามสกุลเป็น .ASP • โครงสร้างหลัก ๆ ในไฟล์ประกอบด้วย • ข้อมูลที่จะแสดง • แท็ก HTML ต่าง ๆ • ASP Script Code ซึ่งได้แก่ Server-Side Code • Client-Side Script Code

  19. วิธีการเขียนคำสั่ง • แบบแรก <% เขียนโค้ดที่นี่ %> • แบบที่สอง <% …เขียนโค้ดที่นี่ … %>

  20. ข้อแนะนำการเขียน VBScript • การจัดระเบียบให้กับโค้ดโปรแกรม • การใส่หมายเหตุ • ใช้เครื่องหมาย ' • ใช้คำสั่ง Rem • การใช้เครื่องหมายต่อบรรทัด • ใช้เครื่องหมาย underscore (_) วางไว้หลังสุดของบรรทัดที่ต้องการแบ่งมาขึ้นบรรทัดใหม่

  21. ตัวแปร (Variable) • ตัวแปร หมายถึง ชื่อที่ใช้แทนข้อมูลที่ใช้ในการเขียนโปรแกรม ซึ่งสามารถกำหนดและเปลี่ยนแปลงค่าของตัวแปรได้ • การประกาศตัวแปร • ต้องเริ่มด้วยตัวอักษร (ควรเป็นภาษาอังกฤษ) • ห้ามใช้ตัวอักษรเหล่านี้ + - * / $ # ช่องว่างระหว่างตัวแปร หรือคำสงวน เช่น Property, Method, Event เป็นต้น • ต้องไม่เกิน 255 ตัวอักษร • ชื่อตัวแปรจะต้องไม่ซ้ำกันภายในขอบเขตเดียวกัน

  22. การประกาศตัวแปร • ประกาศแบบเป็นทางการ (Declared Explicitly) • รูปแบบ Dim varname • กำหนดโดยการใช้คำสั่ง Option Explicit • ตัวอย่าง • Dim strName • Dim intID, strName, strADdress • ประกาศแบบไม่เป็นทางการ (Declared Implicitly) • strName = "Suphakit"

  23. การกำหนดค่าให้กับตัวแปรการกำหนดค่าให้กับตัวแปร • ตัวแปรสตริง (String) ค่าของตัวแปรนี้จะต้องใช้เครื่องหมายคำพูด (" ")เช่น strName="Suphakit" • ตัวแปรตัวเลข (Integer, Long) ค่าของตัวแปรนี้ไม่ต้องใช้เครื่องหมายใด ๆเช่น intAge=25 • ตัวแปรวันเวลา (Date/Time) ค่าของตัวแปรต้องใช้เครื่องหมาย # เช่น StartDate=#5/1/03#

  24. Scalars และ Arrays • Scalars • เป็นตัวแปรที่เก็บข้อมูลเพียงค่าเดียว • strName="Suphakit" • Arrays • เป็นตัวแปรเพียงตัวเดียวที่มีมติทำให้สามารถเก็บข้อมูลได้หลายค่า • strName(3) • strName(0)="Suphakit"

  25. ชนิดข้อมูล • VBScript มีชนิดข้อมูลเพียงชนิดเดียวเท่านั้น คือ variant แต่ข้อมูลชนิดนี้สามารถเป็นไปได้หลายข้อมูลย่อย (subtype) ขึ้นอยู่กับว่าตัวแปรจะถูกใช้อย่างไร • ชนิดข้อมูล • Byte ตัวเลข 0-255 • Boolean True หรือ False • Integer -32,768 ถึง 32,767 • Long -2,147,483,648 ถึง 2,147,483,647 • Single ตัวเลขทศนิยมขนาด 4 ไบต์ • Double ตัวเลขทศนิยมขนาด 8 ไบต์

  26. ชนิดข้อมูล (ต่อ) • Currency ค่าตัวเลขขนาด 8 ไบต์ • Date ระหว่าง 1 ม.ค. 100 ถึง 31 ธ.ค. 9999 • Object ข้อมูล Object ตามขนาดออบเจ็กต์ • String เก็บข้อมูลตัวอักษรขนาดระหว่าง 0-2 พันตัวอักษร • Empty ตัวแปรที่ยังไม่มีการกำหนดค่า • Error หมายเลขผิดพลาด • Null ตัวแปรที่กำหนดไม่ให้มีค่า (No data)

  27. รูปแบบการตั้งชื่อตัวแปรรูปแบบการตั้งชื่อตัวแปร • Boolean bln blnResult • Byte byt bytCounter • Date (Time) dtm dtmStartDate • Double dbl dblSum • Error err errCustName • Integer int intAge • Long lng lngSalary • Object obj objRecordset • Single sng sngAverage • String str strName

  28. ค่าคงที่ (Constant) • ค่าคงที่ คือชื่อที่ใช้แทนข้อมูลที่จะคงที่และไม่มีการเปลี่ยนแปลงค่าตลอดในการพัฒนาแอพพลิเคชันในขอบเขตเดียวกัน • การประกาศตัวแปร • Const ชื่อของค่าคงที่ = ค่าที่จะกำหนด • Const Pi = 3.414 • VBScript Constant คือค่าคงที่ที่มีการกำหนดมาให้ใช้งานล่วงหน้า เช่น vbOKOnly=0, vbOKCancel=1 เป็นต้น

  29. ค่าคงที่เกี่ยวกับสี • vbBlack &h00 สีดำ • vbRed&hFF สีแดง • vbGreen&hFF00 สีเขียว • vbYellow &hFFFF สีเหลือง • vbBlue &hFF0000 สีน้ำเงิน • vbMagenta &hFF00FF สีม่วง • vbWhite &hFFFFFF สีขาว

  30. ค่าคงที่เกี่ยวกับวัน • vbSunday 1 วันอาทิตย์ • vbMonday 2 วันจันทร์ • vbTuesday 3 วันอังคาร • vbWednesday 4 วันพุธ • vbThursday 5 วันพฤหัสบดี • vbFriday 6 วันศุกร์ • vbSaturday 7 วันเสาร์

  31. โอเปอเรเตอร์ (Operator) • ทางคณิตศาสตร์ • +, -, *, /, ^, \ (หารปัดเศษ),Mod (หารเอาเฉพาะเศษ) • เปรียบเทียบ • =, <>, >, <, >=, <= • ตรรกศาสตร์ • Not, And, Or, Xor, Eqv, Imp • ข้อความ • &, +

  32. คำสั่งควบคุมการทำงาน • กลุ่มคำสั่งเพื่อตัดสินใจ • If…Then…Else • Select…Case • กลุ่มคำสั่งเพื่อทำงานวนรอบ • For…Next • For…Each…Next • Do…Loop

  33. If…Then…Else IF เงื่อนไข THEN …เขียนโค้ดที่นี่ ELSEIF เงื่อนไข THEN …เขียนโค้ดที่นี่ ELSE …เขียนโค้ดที่นี่ END IF

  34. Select…Case Select Case ตัวเปรียบเทียบ Case ค่าที่จะเปรียบเทียบ …เขียนโค้ดที่นี่ Case ค่าที่จะเปรียบเทียบ …เขียนโค้ดที่นี่ Case Else …เขียนโค้ดที่นี่ End Select

  35. For…Next For ตัวนับ = ค่าเริ่มต้น TO ค่าสุดท้าย [Step ค่าที่เพิ่ม] …เขียนโค้ดที่นี่ [Exit For] …เขียนโค้ดที่นี่ Next

  36. For…Each…Next For Each ตัวแปรอิลิเมนต์ In ชื่ออาร์เรย์หรือคอลเลคชัน …เขียนโค้ดที่นี่ [Exit For] …เขียนโค้ดที่นี่ Next

  37. Do…Loop Do [{While | Until} เงื่อนไข] …เขียนโค้ดที่นี่ [Exit Do] …เขียนโค้ดที่นี่ Loop • While จะทำงานก็ต่อเมื่อเงื่อนไขเป็นจริง • Until จะทำงานก็ต่อเมื่อเงื่อนไขเป็นเท็จ

  38. Do …เขียนโค้ดที่นี่ [Exit Do] …เขียนโค้ดที่นี่ Loop [{While | Until} เงื่อนไข]

  39. ฟังก์ชันและโพซีเจอร์ • ในการพัฒนาแอพพลิเคชันจะมีการบ่างแอพพลิเคชันออกเป็นส่วนย่อย ๆ เรียกว่า “โปรแกรมย่อย” • เพื่อที่จะช่วยให้การเขียน การแก้ไข การดีบัก การทดสอบ และการดูแลรักษาแอพพลิเคชันได้สะดวกขึ้น • เพื่อลดความซ้ำซ้อนของโค้ด • โปรแกรมย่อย ๆ ของ VBScript แบ่งออกเป็น 2 ประเภท • ซับโพซีเจอร์ (Sub Procedure) • ฟังก์ชัน (Function)

  40. Sub Procedure • เป็นโปรแกรมย่อยที่เขียนขึ้นมาเพื่อทำงานอย่างใดอย่างหนึ่งเสร็จแล้ว จะไม่มีการส่งค่ากลับ (Do Not Return Value) • รูปแบบการสร้างซับโพซีเจอร์ Sub sub_name([Parameter1],...) ... เขียนโค้ดที่นี่ End Sub • รูปแบบการเรียกใช้ซับโพซีเจอร์ • sub_name([Parametr1],...) • Call sub_name([Parametr1],...)

  41. Function • เป็นโปรแกรมย่อยที่เขียนขึ้นมาเพื่อทำงานอย่างใดอย่างหนึ่งเสร็จแล้ว จะมีการส่งค่ากลับ (Return Value) • รูปแบบการสร้างฟังก์ชัน Function function_name([Parameter1],...) ... เขียนโค้ดที่นี่ function_name = value End Function • รูปแบบการใช้งานฟังก์ชัน • variable = function_name([Parameter1],...) • <%=function_name([Parameter1],...) %> • Response.Write function_name([Parameter1],...)

  42. คำสั่งที่ใช้ในการออกจากซับโพซีเจอร์คำสั่งที่ใช้ในการออกจากซับโพซีเจอร์ • Exit Sub • คำสั่งที่ใช้ในการออกจากฟังก์ชัน • Exit Function

  43. Argument • เป็นตัวแปรที่ใช้รับค่าที่ส่งมาจากซับโพซีเจอร์หรือฟังก์ชัน • Argument แบบ ByVal • เมื่อมีการเปลี่ยนแปลงค่าในซับโพซีเจอร์หรือฟังก์ชัน จะไม่ส่งผลต่อค่าของตัวแปรที่ส่งค่ามาจะต้องระบุคำว่า ByVal ไว้ด้านหน้าตัวแปร • Argument แบบ ByRef • เมื่อมีการเปลี่ยนแปลงค่าในซับโพซีเจอร์หรือฟังก์ชัน จะส่งผลต่อค่าของตัวแปรที่ส่งค่ามาจะต้องระบุคำว่า ByRef ไว้ด้านหน้าตัวแปร • ถ้าไม่มีการระบุจะถือว่าเป็น ByVal

  44. ขอบเขต (Scope) ของตัวแปร • Private • เป็นการประกาศตัวแปร ภายในซับโพซีเจอร์หรือฟังก์ชัน • จะใช้ได้เฉพาะในซับโพซีเจอร์หรือฟังก์ชันที่ทำการประกาศตัวแปรเท่านั้น • Public • เป็นการประกาศตัวแปรภายนอกซับโพซีเจอร์หรือฟังก์ชัน • ส่วนใหญ่จะประกาศไว้ส่วนบนของ ASP Page • ตัวแปรนี้จะสามารถใช้ได้ในทุก ๆ ที่ใน ASP Page ซึ่งรวมถึงทุกซับโพซีเจอร์ และทุกฟังก์ชัน

  45. ฟังก์ชันเบื้องต้นของ VBScript • ฟังก์ชันเกี่ยวกับข้อความ • ฟังก์ชันเกี่ยวกับตัวเลข • ฟังก์ชันเกี่ยวกับวันที่และเวลา • ฟังก์ชันที่ใช้แปลงระหว่างตัวแปรต่างชนิดกัน

  46. ฟังก์ชันเกี่ยวกับข้อความฟังก์ชันเกี่ยวกับข้อความ • การแปลงตัวเลขให้อยู่ในกลุ่มของข้อความ • Str(number) • number หมายถึงตัวเลขที่ต้องการแปลงให้อยู่ในรูปข้อความ • การค้นหาคำในข้อความ • InStr([start,]string1,string2[,compare]) • start ตำแหน่งเริ่มต้นในการค้นหา • string1 ข้อความที่ใช้ค้นหา • string2 คำที่ต้องการค้นหา • compare โดยสามารถกำหนดเป็น • vbBinaryCompare (ค่า default) ,0, เปรียบเทียบแบบ Binary • vbTextCompare, 1, เปรียบเทียบแบบข้อความ

  47. การตัดคำในข้อความ • Left(string, length) • Mid(string, start[,length]) • Right(string, length) • โดยที่ • string ข้อความที่ต้องการตัดคำ • start ตำแหน่งเริ่มต้น • length จำนวนตัวอักษรที่ต้องการตัดคำ

  48. การกระทำรหัส ASCII • Asc(string)  ใช้แสดงรหัส ASCII ของตัวอักษร • Chr(charcode) ใช้แสดงอักษรตามรหัส ASCII • การตัดช่องว่างในข้อความทิ้ง • LTrim(string) • RTrim(string) • Trim(string)

  49. การแปลงขนาดของตัวอักษรในข้อความการแปลงขนาดของตัวอักษรในข้อความ • LCase(string)  แปลงให้เป็นตัวพิมพ์เล็ก • UCase(string)  แปลงให้เป็นตัวพิมพ์ใหญ่ • การกำหนดอักษรซ้ำในข้อความ • String(number, character) • number จำนวนที่ต้องการซ้ำ • character รหัส ASCII หรือตัวอักษรที่ต้องการทำซ้ำ • การนับจำนวนตัวอักษรที่ประกอบกันเป็นข้อความ • Len(string)

  50. ฟังก์ชันเกี่ยวกับตัวเลขฟังก์ชันเกี่ยวกับตัวเลข • เกี่ยวกับเครื่องหมายของตัวเลข • Abs(number)  แปลงตัวเลขให้เป็นบวก • Sgn(number)  ตรวจสอบตัวเลขที่ระบุ • ให้ผลลัพธ์ 1 กรณีเป็นจำนวนเต็มบวก • ให้ผลลัพธ์ -1 กรณีเป็นจำนวนเต็มลบ • ให้ผลลัพธ์ 0 กรณีเป็นจำนวนเต็มศูนย์ • เกี่ยวกับเลขฐาน • Oct(number)  แปลงเลขฐานสิบให้เป็นเลขฐานแปด • Hex(number)  แปลงเลขฐานสิบให้เป็นเลขฐานสิบหก

More Related