ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
การเขียนจาวาสคริปทเบื้องตน 1. จาวาสคริปทคืออะไร จาวาสคริปทคือภาษาสคริปทที่สามารถรันไดบนเว็บบราวเซอรที่สนับสนุนการทํางานของจาวาสคริปท เชน เน็ตสเคป (Netscape) และอินเทอรเน็ตเอกซพลอเรอร(Internet Explorer : IE) จาวาสคริปทตางจากภาษา โปรแกรมอื่นๆตรงที่งายในการใชงาน เหมาะกับผูที่ไมมีพื้นฐานในการเขียนโปรแกรมมากอน โดยจาวาสคริปท มีหนาที่หลักในการเพิ่มความสามารถใหกับเว็บเพจ
2. วิธีการเพิม่ โคดจาวาสคริปทในเว็บเพจ วิธีการแทรกโคดจาวาสคริปทลงไปในไฟล HTML ซึ่งแท็ก(Tag) ที่ใชบงบอกถึงจุดเริ่มตน และ จุดสิ้นสุดของโคดจาวาสคริปทก็คือ <SCRIPT> และ ในไฟล HTMLไฟลหนึ่งสามารถจะมีแท็ก <SCRIPT> ไดหลายชุด เหมือนกับเปน HTML แท็กอยางหนึ่ง ซึ่งแท็กเริ่มตนจาวาสคริปทควรระบุวาเปนภาษา จาวาสคริปทดว ย ซึ่งจะเขียนไดดังนี้ <SCRIPT language="JavaScript"> ........โคดจาวาสคริปท........... <SCRIPT> ในปจจุบนั ยังมีผูใชอินเทอรเนต อีกเปนจํานวนมากที่ยังใชโปรแกรมบราวเซอรรุนเกา ซึ่งยังไมมี ความสามารถในการแสดงจาวาสคริปท นั่นคือ ไมรูจักแท็ก <SCRIPT> ซึ่งจะมีผลทําใหโปรแกรมบราวเซอร เหลานั้นแสดงจาวาสคริปทโคดออกมาเปนตัวอักษรธรรมดา วิธีแกไขปญหานี้ก็คือตองทําใหโปรแกรม บราวเซอรรุนเกา ๆ ไมสนใจ สิ่งที่อยูในแท็ก <SCRIPT> โดยจะตองเขียนเปนคอมเมนท (comment) ไวภายใน สัญลักษณ ดังตัวอยาง <SCRIPT language="JavaScript">
หนา 1 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
นอกจากนี้ในจาวาสคริปทยงั สามารถแทรกสวนที่เปนคอมเมนต ไวเพือ่ เตือนความจําของผูเขียนหรือ ผูอานจาวาสคริปทโคดนั้น หรือเพื่อสะดวกในการจัดทําเอกสารประกอบโปรแกรม โดยเว็บบราวเซอรจะ มองขามสวนที่เปนคอนเมนตนี้ไปการแทรกคอมเมนตในจาวาสคริปทโคดทําไดโดยใชสัญลักษณ // หรือ /* ……*/ ตัวอยาง // this is single line comment ไวหนาบรรทัดที่เปนคอมเมนต นิยมใชในกรณีที่มีคอมเมนตเพียงบรรทัดเดียว หรือ /* This is multilines comment This is multilines comment */ ใชลอมรอบขอความที่เปนคอมเมนตทั้งหมด นิยมใชในกรณีที่มีคอมเมนตหลายบรรทัด ตัวอยางเชน <script language="JavaScript">
3. การใชวัตถุ document วัตถุ document เปนวัตถุที่สําคัญที่สุดวัตถุหนึ่งในจาวาสคริปท พิจารณาตัวอยางตอไปนี้
หนา 2 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
ผลลัพธ
"document" หมายถึงวัตถุ "write" คือเมธอด(method) ของวัตถุ document นี้ ผลลัพธที่ไดคือการเขียนขอความ Hi there. This text is written using javascript! บนหนาจอ จาวาสคริปทเปนภาษาของวัตถุ และวัตถุประมาณ 95% จะมีทั้งสวนที่เปน เมธอด(methods) และสวนที่เปน คุณสมบัติ(properties) วัตถุ "Document" เปนหนึ่งในวัตถุที่สําคัญของจาวาสคริปท โดยจะทําหนาที่ในการ ควบคุมโครงรางของสีพื้นหลัง, สีตัวอักษร, รูปภาพ ฯลฯ ของเว็บเพจ โดย "write" เปนเมธอด( method) ของ วัตถุ document โดยปกติแลววัตถุแตละวัตถุจะมีมากกวา 1 เมธอด วัตถุ document ก็เชนกัน มีคณ ุ สมบัติและ เมธ อดตางๆ เชน คุณสมบัต(ิ Properties) เมธอด(Methods) bgColor ใชในการเปลี่ยนสีพื้นหลัง write ใชในการเขียนขอความ lastModified ใหคาวันที่ของการเปลี่ยนแปลงเอกสารครั้งลาสุด writeln ใชเขียนขอความ โดยการขึ้นบรรทัด ใหม fgColor ใชในการเปลี่ยนสีตวั อักษร ตัวอยาง
เปนการเก็บคาวันที่แกไขเอกสารลาสุดไวในตัวแปร example และทําการเขียนคาของตัวแปรนัน้ ลงบนหนาจอ ตอทายขอความ This page was last modified: ดังรูป หนา 3 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
4. การตอบโตระหวางจาวาสคริปทกับผูใช ในจาวาสคริปทนั้นมีคําสั่งซึ่งทําใหสามารถโตตอบกับผูใชได โดยจะกลาวถึงคําสั่งที่นาสนใจไดแก คําสั่งที่ 1 ไดแก window.alert() คําสั่งนี้จะแสดงหนาตางขอความที่กําหนด ยกตัวอยางเชน
คําสั่งที่ 2 ไดแก window.confirm() คําสั่งนี้ใชในการยืนยันกับผูใชเกี่ยวกับการทํางาน และเปนการตัดสินใจระหวาง 2 ตัวเลือก ขึ้นอยูก ับวา ผูใชเลือกตัวเลือกใด ตัวอยางเชน
หนา 4 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
เมื่อคลิ๊ก ปุม OK
บรรทัดที่ 1 "var x=" เปนการประกาศตัวแปร ชื่อ x ซึ่งตัวแปรนัน้ ใชในการเก็บคาผลลัพธของกลอง ขอความยืนยัน โดยตัวแปร x จะไดรับผลลัพธจากคําสั่ง window.confirm เปนคา "true" หรือ "false". นอกจากนั้นการใชประโยคคําสั่ง "if … else …" เปนการกําหนดใหสคริปทสามารถเลือกระหวาง 2 ทางเลือก ขึ้นอยูกับวาคําตอบของเงื่อนไข(ในกรณีนคี้ ือคาของ x) มีคา true หรือ false ถา x มีคา true จะแสดงหนาตาง ขอความวา Good ถา x มีคา false จะแสดงหนาตางเตือนขอความวา Too bad คําสั่งที่ 3 ไดแก window.prompt() คําสั่งนี้ ใชในการใหผูใชปอนคาเขาไปใหกับจาวาสคริปท ตัวอยาง เชน
เมื่อคลิ๊กปุม พิมพชื่อ ศรราม และคลิ๊ก OK
หนา 5 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
ตัวอยางนี้เปนการใหผูใชปอนชื่อเขาไป จากนั้นจะเก็บคาผลลัพธ(ในกรณีนี้คือชื่อที่ผูใชปอน) ไวในตัว แปร y และคําสั่ง window.alert จะแสดงหนาตางเตือนเพื่อแสดงชื่อที่เก็บในตัวแปร y นั้น
5. การสรางฟงกชั่น (Functions) ฟงกชั่นคือกลุม ของโคดที่รวมกันขึ้นเพื่อทํางานที่ซับซอน โดยฟงกชั่นจะไมทํางานจนกวาจะถูกเรียกใช รูปแบบการสรางฟงกชั่นไดแก function whatever_name(parameter1,parameter2) { ฟงกชั่นโคด } function เปนสวนบงชี้วากําลังประกาศฟงกชั่น whatever_name ชื่อของฟงกชั่น (parameter1, parameter2) พารามิเตอร (parameters) ก็คือตัวแปรที่สงเขาไปยังฟงกชั่นเมื่อฟงกชนั่ ถูกเรียก อาจจะมีพารามิเตอรกี่ตัวหรือไมมีเลยก็ได { เครื่องหมายปกกาเปดแสดงใหเห็นการเริ่มตนฟงกชั่น หรือประโยคคําสั่งตาง ๆ } เครื่องหมายปกกาปดแสดงใหเห็นจุดสิน้ สุดของฟงกชั่น หรือประโยคคําสั่ง การเรียกใชฟงกชั่น จะทําการเรียกฟงกชั่นไดโดย Function_name (parameter1, parameter2); นั่นคือ ระบุชื่อของฟงกชั่นทีต่ องการใช พรอมทั้งพารามีแตอร (ถามี) ตัวอยาง เมื่อตองการสรางฟงกชั่นชื่อ test เปนฟงกชนั่ ที่ไมมีพารามิเตอร ทําหนาทีใ่ นการเขียนขอความ Hello there! บนหนาจอเมื่อมีการเรียกใชฟงกชั่น การสรางฟงกชั่นนี้ทําไดโดย หนา 6 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
การเขียนฟงกชั่นนั้นจะตองเขียนภายในแท็ก <script> โดยสวนใหญนยิ มสรางฟงกชั่นไวใน สวนของแท็ก ในเอกสาร HTML จากตัวอยางขางตน เมื่อตองการเรียกใชฟงกชั่น test ทําได โดยพิมพ test() ฟงกชนั่ ที่มีพารามิเตอร(Functions with Parameters) ฟงกชั่นสามารถรับขอมูลจากภายนอก และนํามาประมวลผลภายในฟงกชั่น โดยพารามิเตอรหมายถึงสิ่ง ที่นําเขาไปในฟงกชั่น เมื่อตองการรับคาขอมูลเขาไปยังฟงกชั่นสามารถปอนคาผานพารามิเตอร โดยคา พารามิเตอรอาจแตกตางกันไปในแตละครั้ง แลวแตความตองการของผูเขียนสคริปท การใชงานฟงกชั่นนั้นยัง ชวยประหยัดเวลาในการทํางาน กรณีที่ตองทํางานนั้นซ้ําๆ หลายๆครั้งอีกดวย ตัวอยางเชนการคํานวณหาพืน้ ที่สี่เหลี่ยมคางหมู ซึ่งมีสูตรในการคํานวณวา (width1+width2)*height/2 ฟงกชั่นในที่นชี้ ื่อ area โดยรับคาพารามิเตอร 3 ตัวคือ w1, w2 และ h
หนา 7 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
จากตัวอยางการเรียกฟงกชนั่ ครั้งที่ 1 คือ area(2,3,7)เปนการเรียกใชฟงกชั่นโดยกําหนดคาพารามิเตอร w1=2, w2=3, และ h=7 ในการสรางฟงกชั่นนั้นสามารถมีพารามิเตอรไดหลายตัวตามตองการ ในคําสั่ง alert(area + " sq ft") หมายถึงการแสดงหนาตางผลลัพธของคาฟงกชั่น area ตอทายดวยขอความ sq ft ฟงกชนั่ ที่มีการสงคากลับ(Functions that return a value) ฟงกชั่นสามารถสงคากลับออกมาได โดยใชคําสั่ง return พิจารณาตัวอยาง
ฟงกชั่น diameter รับคารัศมีของวงกลมจากตัวแปร x เพือ่ นํามาคํานวณหาเสนรอบวง จากนั้นจึงสงคา เสนรอบวงที่คํานวณไดกลับออกมา
6. ตัวจัดการเหตุการณ(Event Handlers) ตัวจัดการเหตุการณเปนจาวาสคริปทโคดที่ไมตองเขียนอยูภายในแท็ก <script> โดยจะรันจา วาสคริปทเมื่อมีเหตุการณบางอยางเกิดขึน้ เชน เมื่อมีการกดปุม, เลื่อนเมาสไปบนลิงค, การสงขอมูลของฟอรม ฯลฯ รูปแบบพื้นฐานในการใชงานตัวจัดการเหตุการณคอื name_of_handler="JavaScript code here" ตัวอยางเชน onClick="alert('hello!')" ตัวจัดการเหตุการณที่นยิ มใชไดแก รันจาวาสคริปทเมื่อมีการคลิก(ใชกับลิงค หรือ ใชกับวัตถุในฟอรม) onclick รันจาวาสคริปทหลังเว็บเพจหรือรูปภาพถูกโหลดมาเรียบรอยแลว onload หนา 8 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
onmouseover onmouseout onunload
รันจาวาสคริปทเมื่อเลื่อนเมาสผานไปขางบน รันจาวาสคริปทเมื่อเลื่อนเมาสออก รันจาวาสคริปทหลังจากออกจากเว็บเพจหนานัน้
ตัวจัดการเหตุการณ onClick onClick จะทํางานเมื่อผูใชคลิกบนปุม, เช็คบ็อกซ, หรือ บนลิงค ฯลฯ ดังนั้น onClick จึงสามารถแทรก เขาไปในแท็กเหลานี้ได ตัวอยางเชน
เมื่อคลิ๊กที่ปุม จะปรากฏ
ฟงกชั่น inform() จะถูกเรียกใชเมื่อผูใชคลิกที่ปุม ตัวอยางตอไป เปนการใช onClick กับปุมเช็คบ็อกซ เพื่อเปลี่ยนสีพื้นหลังของเว็บเพจ
หนา 9 จาก 32
ภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตร ม.บูรพา
ตัวจัดการเหตุการณ onLoad onload ถูกใชเพื่อเรียกใหรันจาวาสคริปทหลังจากเว็บเพจ หรือ เฟรม หรือ รูปภาพถูกโหลดขึ้นมา เรียบรอยแลว ตัวอยางเชน // การเรียกใชฟงกชั่น inform() จะเริ่มหลังเพจถูกโหลด