2.39k likes | 2.94k Views
บทที่ 4. แนะนำ การเขียนภาษาจาวาสคริปต์ ( JavaScript Language). สัญญา เครือหงษ์ ภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยนเรศวร. วัตถุประสงค์การเรียนรู้ประจำบท. เพื่อศึกษาหลักการทำงานของภาษา Script ที่ประมวลผลฝั่ง Client
E N D
บทที่ 4 แนะนำการเขียนภาษาจาวาสคริปต์(JavaScript Language) สัญญา เครือหงษ์ ภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยนเรศวร
วัตถุประสงค์การเรียนรู้ประจำบทวัตถุประสงค์การเรียนรู้ประจำบท • เพื่อศึกษาหลักการทำงานของภาษา Script ที่ประมวลผลฝั่ง Client • เพื่อให้หลักการเขียนโปรแกรมภาษา Javascript
กิจกรรมการเรียนการสอนกิจกรรมการเรียนการสอน • บรรยายโดยผู้สอนและใช้เอกสารประกอบการสอนของผู้สอน • สอนโดยใช้สื่อคอมพิวเตอร์ผ่านเครื่องฉาย • อภิปรายในชั้นเรียนร่วมกัน • ให้นิสิตค้นคว้าเพิ่มเติมจากตำราและเอกสารที่เกี่ยวข้อง • ทำแบบฝึกหัดท้ายบท
การประเมินผล • ประเมินผลจากการตอบคำถามและอภิปรายในชั้นเรียน • ทำแบบฝึกหัดท้ายบท • ทำรายงานส่ง
JavaScript คืออะไร ภาษาจาวาสคริปต์ถูกพัฒนาโดย เน็ตสเคปคอมมิวนิเคชันส์ (Netscape Communications Corporation) โดยใช้ชื่อว่า Live Script ออกมาพร้อมกับ Netscape Navigator2.0 เพื่อใช้สร้างเว็บเพจโดยติดต่อกับเซิร์ฟเวอร์แบบ Live Wire ต่อมาเน็ตสเคปจึงได้ร่วมมือกับ บริษัทซันไมโครซิสเต็มส์ปรับปรุงระบบของบราวเซอร์เพื่อให้สามารถติดต่อใช้งานกับภาษาจาวาได้ และได้ปรับปรุง LiveScriptใหม่เมื่อ ปี 2538 แล้วตั้งชื่อใหม่ว่า JavaScript
ลักษณะการทำงานของ JavaScript JavaScript เป็นภาษาสคริปต์เชิงวัตถุ หรือเรียกว่า อ็อบเจ็กโอเรียลเต็ด (Object Oriented Programming) เป้าหมายในการออกแบบและพัฒนาโปรแกรมในระบบอินเทอร์เน็ต สำหรับผู้เขียนเอกสารด้วยภาษา HTML และภาษาจาวาได้ทั้งทางฝั่งไคลเอนต์ (Client) และ ทางฝั่งเซิร์ฟเวอร์ (Server)
โดยมีลักษณะการทำงานดังนี้โดยมีลักษณะการทำงานดังนี้ 1. Navigator JavaScript เป็น Client-Side JavaScript ซึ่งหมายถึง JavaScript ที่ถูกแปลทางฝั่งไคลเอนต์ (หมายถึงฝั่งเครื่อง คอมพิวเตอร์ของผู้ใช้ ไม่ว่าจะเป็นเครื่องพีซี เครื่องแมคอินทอช หรือ อื่น ๆ) จึงมีความเหมาะสมต่อการใช้งานของผู้ใช้ทั่วไปเป็นส่วนใหญ่ 2. LiveWire JavaScript เป็น Server-Side JavaScript ซึ่งหมายถึง JavaScript ที่ถูกแปลทางฝั่งเซิร์ฟเวอร์ (หมายถึงฝั่งเครื่อง คอมพิวเตอร์ของผู้ให้บริการเว็บ โดยอาจจะเป็นเครื่องของซันซิลิคอมกราฟิกส์ หรือ อื่น ๆ) สามารถใช้ได้เฉพาะกับ LiveWireของเน็ตสเคป โดยตรง
Client-Side Script (บทที่1) 3. HTML stream (from .htm page) Returned to browser 2. Web Server locate .html File Web Server 4. Browser Process Client-side script 5. Browser Processes HTML And displays Pages 1. Client Request Webpage Client
JavaScript กับ HTML ภาษา JavaScript สามารถเขียนรวมอยู่ในไฟล์เดียวกันกับ HTML ได้ โดยมีการเขียน 2 วิธี ดังนี้ • เขียนด้วยชุดคำสั่งและฟังก์ชันของ JavaScript เอง • เขียนตามเหตการณ์ที่เกิดขึ้นตามการใช้งานจากชุดคำสั่งของ HTML
JavaScript กับ HTML (ต่อ) เมื่อเริ่มใช้งาน โปรแกรมบราวเซอร์ จะอ่านข้อมูลจากส่วนบนของเพจ HTML และทำงานไปตามลำดับจาก บนลงล่าง (top-down) โดยเริ่มที่ส่วน<HEAD>...</HEAD> ก่อนจากนั้นจึงทำงานในส่วน<BODY>...</BODY> เป็นลำดับ <HTML> <head> <script Language ="JavaScript"> ...................................... </script> </head> <body> <script Language ="JavaScript"> .................................................. </script> </BODY> </HTML>
ตัวแปร ตัวแปร (Variable) หมายถึง ชื่อหรือสัญลักษณ์ที่ตั้งขึ้นสำหรับการเก็บค่าใด ๆ ที่ไม่คงที่ โดยการจองเนื้อที่ในหน่วยความจำของระบบเครื่องที่เก็บข้อมูลซึ่งสามารถอ้างอิงได้ มีขนาดขึ้นอยู่กับชนิดของข้อมูลและค่าของข้อมูล ซึ่งค่าในตัวแปรนี้สามารถเปลี่ยนแปละได้ตามคำสั่งในการประมวลผล
การตั้งชื่อ(Identifier, Name) การตั้งชื่อ (Identifier or Name) เป็นชื่อที่ตั้งขึ้นมาเพื่อกำหนดให้เป็นชื่อของโปรแกรมหลัก, ฟังก์ชัน, ตัวแปร, ค่าคงที่, คำสั่ง และคำสงวน โดยมีหลักการตั้งชื่อว่า • ขึ้นต้นด้วยตัวอักษรในภาษาอังกฤษ ตามด้วยตัวอักษรหรือตัวเลขใด ๆ ก็ได้ • ห้ามเว้นช่องว่าง • ห้ามใช้สัญลักษณ์พิเศษ ยกเว้นขีดล่าง (_) และดอลล่าร์ ($) • สำหรับความยาวของชื่อใน JavaScript จะมีความยาวเท่าใดก็ได้ แต่ที่นิยมใช้ ไม่เกิน 20 ตัวอักษร • การตั้งชื่อมีข้อพึงระวังว่า จะต้องไม่ซ้ำกับคำสงวน (Reserve word) และตัวอักษรของชื่อจะจำแนกแตกต่างกันระหว่างอักษรตัวพิมพ์เล็กกับอักษรตัวพิมพ์ใหญ่ • ควรจะตั้งชื่อโดยให้ชื่อนั้นมีสื่อความหมายให้เข้ากับข้อมูล สามารถอ่านและเข้าใจได้
คำสงวน(Reserve word) คำสงวน (Reserve word) เป็นคำที่มีความหมายเฉพาะตัวในภาษา JavaScript สงวนไม่ให้มีการตั้งชื่อซ้ำกับชื่อโปรแกรม, ฟังก์ชัน, ตัวแปร, ค่าคงที่ และคำสั่ง คำสงวน สามารถเรียกใช้ได้ทันทีโดยไม่ต้องมากำหนดความหมายใหม่แต่อย่างใด
ชนิดข้อมูลของตัวแปร(Data Type) ชนิดของข้อมูลของตัวแปร (Data Type) เป็นการกำหนดประเภทค่าของข้อมูลให้กับตัวแปร เพื่อให้เหมาะสมกับการอ้างอิงข้อมูลจากตัวแปรในการใช้งาน มี4ชนิด ได้แก่ • number ข้อมูลชนิดตัวเลข ประกอบด้วย เลขจำนวนเต็ม (Integer) และเลขจำนวนจริง (Floating) • logical ข้อมูลทางตรรกะ มี 2 สถานะ คือ จริง (True) และเท็จ (False) • string ข้อมูลที่เป็นข้อความ ซึ่งจะต้องกำหนดไว้ในเครื่องหมายคำพูด ("...") • null ไม่มีค่าข้อมูลใดๆ ซึ่งค่า null ใช้สำหรับการยกเลิกพื้นที่เก็บค่าของตัวแปรออกจากหน่วยความจำ
การประกาศตัวแปร(Declarations) การประกาศตัวแปร (Declarations) เป็นการกำหนดชื่อและชนิดข้อมูลให้กับตัวแปรเพื่อนำไปใช้ในโปรแกรม โดยการตั้งชื่อจะต้องคำนึงถึงค่าของข้อมูลและ ชนิดของข้อมูลที่อ้างอิง นอกจากนี้การตั้งชื่อควรให้สื่อความหมายของข้อมูล และอักษรของชื่อจะจำแนกแตกต่างกันระหว่างอักษรตัวพิมพ์เล็กกับอักษรตัวพิมพ์
การกำหนดค่าให้กับตัวแปรการกำหนดค่าให้กับตัวแปร รูปแบบ ชื่อตัวแปร = ค่าของข้อมูล โดยที่...ค่าของข้อมูล ได้แก่1. ข้อมูลที่เป็นตัวเลข โดยกำหนดตัวเลขไปได้เลย เช่น num = 500 2. ข้อมูลในทางตรรกะ ได้แก่ จริง (True) หรือ เท็จ (False) เช่น test = True; 3. ข้อมูลสตริง ให้กำหนดอยู่ในเครื่องหมายคำพูด ("...") เช่น name = “Sanya";
การกำหนดค่าให้กับตัวแปร (ต่อ) ตัวแปรมี 2จำพวก 1. ตัวแปรแบบโกลบัล (Global) ตัวแปรจำพวกนี้จะมีค่าคงอยู่ในหน่วยความจำตลอดการทำงานของโปรแกรม ทำให้สามารถเรียกใช้ได้จากทุก ๆ ส่วนของโปรแกรม รวมถึงภายในฟังก์ชันต่าง ๆ ด้วย ซึ่งเป็นการกำหนดชื่อตัวแปรไว้ที่โปรแกรมหลักโดยไม่ได้อยู่ภายในขอบเขตฟังก์ชันใด ๆ 2.ตัวแปรแบบโลคัล (Local)เป็นการกำหนดตัวแปรไว้ภายในขอบเขตฟังก์ชันใด ๆ เป็นตัวแปรที่มีค่าคงอยู่ และสามารถเรียกใช้ได้เฉพาะ ภายในขอบเขตของฟังก์ชันนั้น ๆ เท่านั้น
ค่าคงที่(Literal,Constant) ค่าคงที่ (Literal หรือ Constant) หมายถึง ค่าของข้อมูลที่เมื่อกำหนดแล้วจะทำการเปลี่ยนแปลงค่าเป็นอย่างอื่นไม่ได้ ชนิดข้อมูลของค่าคงที่ได้แก่ • เลขจำนวนเต็ม (Integer) เป็นตัวเลขที่ไม่มีเศษทศนิยม สามารถเขียนให้อยู่ในแบบ เลขฐานสิบ (0-9), เลขฐานสิบหก (0-9, A-F) หรือ เลขฐานแปด (0-7) โดยการเขียนเลขฐานแปดให้ นำหน้าด้วย O (Octenary)ส่วนการเขียนเลขฐานสิบหกให้นำหน้าด้วย Ox หรือ OX (Hexadenary)
ค่าคงที่ (ต่อ) • เลขจำนวนจริง (Floating)ใช้รูปแบบการเขียนโดยประกอบไปด้วยตัวเลข จุดทศนิยมและตัวเลขยกกำลัง E (Exponential) เช่น 5.00E2จะหมายถึงค่า 5.00 คูณด้วย 10 ยกกำลัง 2 จะมีค่าเป็น 500 3.141E5จะหมายถึงค่า 3.141 คูณด้วย 10 ยกกำลัง 5 จะมีค่าเป็น314,1000 • ค่าบูลีน (Boolean) เป็นค่าคงที่เชิงตรรกะ คือมีค่าเป็น จริง(True) และ เท็จ(False) เท่านั้น • ข้อความสตริง (String) เป็นค่าคงที่แบบข้อความที่อยู่ภายในเครื่องหมายคำพูด ("..." หรือ '...') เช่น "บริษัท เอ็กซ์ทรีม จำกัด", 'นางนฤมล เวชตระกูล'
รหัสคำสั่งพิเศษ รหัสคำสั่งพิเศษ (Character escape code) เป็นการกำหนดรหัสเพื่อควบคุมงานพิมพ์สตริงโดยใช้เครื่องหมาย \ (Backslash) นำหน้าตัวอักษรที่ต้องการกำหนดเป็นรหัส เพื่อให้กลายเป็นรหัสคำสั่งพิเศษ \bหมายถึง ลบไปทางซ้าย (Back Space) \fหมายถึง เลื่อนกระดาษไปอีก 1 หน้า (Form Feed) \nหมายถึง ขึ้นบรรทัดใหม่ (New Line) \rหมายถึง ตรวจสอบการกด Enter (Return) และการเลื่อนขึ้นบรรทัดใหม่ของหน้าระดาษ \tหมายถึง เลื่อนตำแหน่งไปทางขวา 1 ช่วงแท็บ (Tab) \\ หมายถึง เติมเครื่องหมาย \ (Backslash) \" หมายถึง เติมเครื่องหมายคำพูด
ข้อคำสั่ง (Statement) ข้อคำสั่ง (Statement) คือ ถ้อยแถลงหรือข้อความคำสั่งที่สั่งให้จาวาสคริปต์ ดำเนินงานตามลำดับที่ได้สั่งไว้ การเขียนข้อคำสั่งจะสิ้นสุดหรือจบข้อคำสั่งด้วยเครื่องหมาย เซมิโคล่อน (;) ตัวอย่างการกำหนดข้อคำสั่ง 2 คำสั่ง กำหนดให้ตัวแปร name เก็บชื่อSanyaให้พิมพ์ประโยคข้อความว่า My name is Sanyaจะกำหนดได้ดังนี้ name = “Sanya";document.write("My name is "+name);
นิพจน์ (Expression) นิพจน์ (Expression) เป็นข้อคำสั่งที่ใช้กำหนดค่าของข้อมูล เช่น การบวกตัวเลข การเปรียบเทียบข้อมูล โดยการกำหนดชื่อของตัวแปร ตามด้วยเครื่องหมายที่ต้องการกระทำ (Operations) ต่อข้อมูลเป็นผลให้เกิดค่าข้อมูลใหม่ค่าหนึ่งให้กับตัวแปรเพื่อนำไปใช้งาน นิพจน์ JavaScript มีด้วยกัน 3 ชนิดดังนี้ 1. นิพจน์คณิตศาสตร์ (Arithmetic) เช่น ให้ตัวแปร numเก็บตัวเลข 5000 จะเขียนได้ดังนี้num= 5000; 2. นิพจน์ตรรกะ (Logical) เป็นนิพจน์ในการเปรียบเทียบข้อมูล เช่น กำหนดให้a = 50; 3. นิพจน์ข้อความ (String) เช่น ให้ตัวแปร name เก็บชื่อSanya จะเขียนได้ดังนี้name = “Sanya";
ตัวดำเนินการ(Operator) ตัวดำเนินการ (Operator) หมายถึง เครื่องหมายกำหนดกรรมวิธีทางคณิตศาสตร์, พีชคณิต, บูลีน, การเปรียบเทียบ ระหว่างข้อมูล 2 ตัว ซึ่งเรียกว่า โอประแรนด์(Operand) โดยอาจมีค่าเป็นตัวเลข ข้อความ ค่าคงที่ หรือตัวแปรต่าง ๆ
ชนิดของตัวดำเนินการ ตัวดำเนินการคณิตศาสตร์ ใช้สำหรับคำนวณโอประแรนด์ที่เป็นค่าคงที่หรือตัวแปรก็ได้ โดยให้ค่าผลลัพธ์เป็นตัวเลขค่าเดียว โอประเรเตอร์ เชิงคณิตศาสตร์ที่คนส่วนใหญ่รู้จักคุ้นเคยกันมากที่สุดได้แก่ +หมายถึง เครื่องหมายการบวก-หมายถึง เครื่องหมายการลบ * หมายถึง เครื่องหมายการคูณ/หมายถึง เครื่องหมายการหาร%หมายถึง เครื่องหมายหาเศษที่ได้จากการหารที่เรียกว่า โมดูลัส(Modulus)++หมายถึง เครื่องหมายการเพิ่มค่าที่เรียกว่า อินครีเมนต์(increment) โดยจะเพิ่มค่าครั้งละ 1 --หมายถึง เครื่องหมายการลดค่าที่เรียกว่า ดีครีเมนต์(decrement) โดยจะลดค่าครั้งละ 1 (-) หมายถึง เครื่องหมายแปลงค่าให้กลายเป็นค่าตรงกันข้ามกับค่าเดิมที่เรียกว่า ยูนารีนีเกชัน (unary negation)
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการเชิงเปรียบเทียบ (Comparison operator) หมายถึง เครื่องหมายในการเปรียบเทียบข้อมูล ผลลัพธ์ที่ได้จะมีค่าตรรกบูลลีนเป็น จริง (True) และ เท็จ (False) ได้แก่ == หมายถึง เครื่องหมายเท่ากับ != หมายถึง เครื่องหมายไม่เท่ากับ > หมายถึง เครื่องหมายมากกว่า >= หมายถึง เครื่องหมายมากกว่าหรือเท่ากับ < หมายถึง เครื่องหมายน้อยกว่า <= หมายถึง เครื่องหมายน้อยกว่าหรือเท่ากับ
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการกำหนดค่า (Assignment operator) หมายถึง เครื่องหมายในการกำหนดให้ตัวแปรที่อยู่ทางฝั่งซ้าย มีค่าเท่ากับค่าเดิมในตัวแปรนั้น "กระทำ" (บวก, ลบ, คูณ, หาร) กับอีกตัวแปรหนึ่งที่อยู่ทางฝั่งขวา ได้แก่ x = y หมายถึง กำหนดค่า y ให้กับตัวแปร xx+= y หมายถึง เพิ่มค่า y ให้กับตัวแปร x (x = x + y) x -= y หมายถึง ลบค่า y ออกจากตัวแปร x (x = x - y) x *= y หมายถึง กำหนดค่า x คูณกับค่า y ให้กับตัวแปร x (x = x * y)x /= y หมายถึง กำหนดค่า x หารกับค่า y ให้กับตัวแปร x (x = x / y) x %= y หมายถึง กำหนดเศษที่ได้จากการหารค่า x ด้วยค่า y ให้กับตัวแปร x (x = x % y)
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการกำหนดค่า (ต่อ) x <<= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต (x = x << y)x >>= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต (x = x >> y)x >>>= y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต (x = x >>> y)x &= y หมายถึง เก็บค่า x AND y ในตัวแปร x (x = x & y)x ^= y หมายถึง เก็บค่า x XOR y ในตัวแปร x (x = x ^ y)x |= y หมายถึง เก็บค่า x OR y ในตัวแปร x (x = x | y)
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการเชิงตรรกะ (Logical operator) เป็นเครื่องหมายที่ให้ค่าจริง (True) และ เท็จ (False) ในการเปรียบเทียบ ประกอบด้วยเครื่องหมาย &&หมายถึง และ(AND) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่||หมายถึง หรือ(OR) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่หรือจริงเพียงค่าใด ค่าหนึ่ง !หมายถึง ปฎิเสธ(NOT) เป็นการแปลงค่าตรงกันข้าม จากจริงจะเป็นเท็จ และ จากเท็จจะเป็นจริ
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการเชิงข้อความ (String operator) เป็นการเชื่อมประโยคข้อความเข้าด้วยกัน (concatenation) โดยใช้เครื่องหมายบวก (+) เป็นตัวกระทำ เช่น Name = “Alex"; Say = "Hey "+Name;ผลลัพธ์ที่ได้ Say จะมีข้อความเป็น Hey Alex
ชนิดของตัวดำเนินการ (ต่อ) ตัวดำเนินการระดับบิต (Bitwise operator) เป็นการดำเนินการเชิงตรรกะในระดับบิต โดยจะใช้มุมมองในแบบเลขฐาน 2 มาจัดการกับข้อมูล มีรายละเอียดดังนี้ x & y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ AND ระหว่าง x กับ y x | y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ OR ระหว่าง x กับ y x ^ y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ XOR ระหว่าง x กับ y~x หมายถึง เพิ่มค่าบิตให้ 1 จากนั้นจะให้ผลลัพธ์ของบิตมีค่าตรงข้าม x << y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต x >> y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต x >>> y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต
ลำดับความสำคัญของตัวดำเนินการลำดับความสำคัญของตัวดำเนินการ ลำดับที่ 1 ( ) ลำดับที่ 2 ++ -- ! ~ลำดับที่ 3 * / % ลำดับที่ 4 + -ลำดับที่ 5 << >> >> ลำดับที่ 6 < <= > >=ลำดับที่ 7 == != ลำดับที่ 8 &ลำดับที่ 9^ ลำดับที่ 10 |ลำดับที่ 11 && ลำดับที่ 12 ||ลำดับที่ 13 = += -= *= /= %= <<= >>= >>>= &= ^= !=
ตัวอย่าง <HTML> <head> <script Language ="JavaScript"> document.write("hello1"); </script> </head> <body> <script Language ="JavaScript"> document.write("hello2"); </script> </BODY> </HTML>
คำสั่งควบคุมการทำงาน • การกำหนดเงื่อนไข ได้แก่ IF, IF ELSE, IF ELSE IF, SWITCH CASE, WITH, EXPRESSION เป็นต้น • คำสั่งควบคุมการทำงานวนซ้ำ ได้แก่ FOR, While, Do While, คำสั่ง break และ continue ของประโยควนซ้ำ
คำสั่งควบคุมการทำงาน IF • คำสั่ง if คือ ใช้ตรวจสอบเงื่อนไข ถ้าหากว่าเงื่อนไขเป็นจริง ก็จะทำตามคำสั่งที่กำหนด • syntax: If(condition){ structure; } <script Language ="JavaScript"> var num = 100; if (num>=100) { alert("The winner"); document.write("more than 100 Baht"); } </script>
คำสั่งควบคุมการทำงาน IF ELSE • คำสั่ง if คือ ใช้ตรวจสอบเงื่อนไข ถ้าหากว่าเงื่อนไขเป็นจริง ก็จะทำตามคำสั่งที่กำหนด ส่วน else จะหมายถึง ถ้าไม่ตรงตามเงื่อนไขใดๆ ให้ทำตามคำสั่งที่กำหนดใน else • syntax: if ( condition ) { structure; }else{ structure; } <script Language ="JavaScript"> var num = 50; if (num>=100) { document.write("more than 100 Baht"); }else{ document.write("less than 100 Baht"); } </script>
คำสั่งควบคุมการทำงาน IF ELSE IF • คำสั่ง if คือ ใช้ตรวจสอบเงื่อนไข ถ้าหากว่าเงื่อนไขเป็นจริง ก็จะทำตามคำสั่งที่กำหนด ส่วน else จะหมายถึง ถ้าไม่ตรงตามเงื่อนไขใดๆ ให้ทำตามคำสั่งที่กำหนดใน else syntax: if(condition){ structure; }else if(condition){ structure; }else{ structure; } <script Language ="JavaScript"> var num = 60; if(num>=100) { document.write("get 100 Baht"); }else if(num>=50) { document.write("get 50 Baht"); }else{ document.write("get 0 Baht"); } </script>
คำสั่งควบคุมการทำงาน SWITCH CASE • คำสั่ง switch case คือ จะตรวจสอบค่าของตัวแปร ถ้าตรงตามเงื่อนไขใดก็จะทำตามคำสั่งนั้นๆ จนกว่าจะเจอ คำสั่ง break • syntax: <script Language ="JavaScript"> var num = 70; switch(num){ case 100 : document.write("get 100 Baht"); break; case 50 : document.write("get 50 Baht"); break; default : document.write("get 0 Baht"); break; } </script> switch(variable) { case value_1 : structure; break; case value_2 : structure; break; default : structure; break; }
คำสั่งควบคุมการทำงาน FOR • คำสั่ง for คือ จะทำงานเมื่อเงื่อนไขเป็นจริง และจะจบการทำงานเมื่อเงื่อนไขเป็นเท็จ โดยแต่ละรอบของการวนลูป จะมีการเพิ่มค่าตามที่กำหนด syntax: For( ค่าเริ่มต้น; เงื่อนไข; การเพิ่มค่า ) { structure; } <script Language ="JavaScript"> for(vari=1; i<20; i++ ) { document.write( i + " get 100 Baht<br>"); } </script>
คำสั่งควบคุมการทำงาน WHILE • คำสั่ง while คือ จะทำงานเมื่อเงื่อนไขเป็นจริง และจะจบการทำงานเมื่อเงื่อนไขเป็นเท็จ • syntax: <script Language ="JavaScript"> var num = 10; while ( num > 0 ) { document.write( num + " get 100 Baht<br>"); num--; } </script> • while(เงื่อนไข) { • structure; • }
คำสั่งควบคุมการทำงาน DO WHILE • คำสั่ง do while คือ จะทำงานก่อน 1 ครั้ง แล้วหลังจากนั้นจะทำงานก็ต่อเมื่อเงื่อนไขยังเป็นจริงอยู่ และจะจบการทำงานเมื่อเงื่อนไขเป็นเท็จ syntax: do{ structure; }while( เงื่อนไข ); <script Language ="JavaScript"> var num = 10; do{ document.write( num + " get 100 Baht<br>"); num--; }while(num>0); </script>
การใช้ Break และ Continue • Break; เพื่อหยุดและออกจากการทำงานวนลูป • Continue; เพื่อหยุดการทำงานวนลูปรอบปัจจุบัน และไปทำงานในรอบต่อไป
คำสั่งควบคุมการทำงานEXPRESSIONคำสั่งควบคุมการทำงานEXPRESSION • คำสั่ง expression คือ ใช้กำหนดคำสั่งแบบมีเงื่อนไข • syntax: variable = condition ? value_when_true : value_when_false ; <script Language ="JavaScript"> var num=100; varstr = (num==100) ? alert("many") : alert( "little") ; </script>
คำสั่งควบคุมการทำงาน WITH • คำสั่ง with ใช้เพื่อที่จะระบุ object เพียงครั้งเดียว แล้วเรียกใช้ property หรือ method ต่างของ object นั้นๆ ได้เลย ( สามารถช่วยลดเวลาการทำงานของโปรแกรมได้ ) • syntax: with(object) { property; method; } <script Language ="JavaScript"> with(Math){ alert(E); alert(PI); } </script>
Object Class • toString() • ใช้แปลงชนิดข้อมูล ของชื่อตัวแปรที่กำหนด ให้เป็น string varnum = 25; alert ( num.toString() ); • toString(base) • ใช้แปลงเลขฐาน จากฐาน 10 ไปเป็นฐาน 2, 8, 16 varnum = 25; alert(num.toString(2)); alert(num.toString(8)); alert(num.toString(16)); • <script Language ="JavaScript"> varnum = 25; alert(num.toString(2)); alert(num.toString(8)); alert(num.toString(16)); • </script>
Object Class (ต่อ) • toString(10) • ใช้แปลงเลขฐาน จากฐาน 2, 8, 16 ไปเป็นฐาน 10 varoctnum = 0702; varhexnum = 0xAF; alert ( octnum.toString(10) ); alert ( hexnum.toString(10) ); หมายเหตุ การกำหนดค่าของเลขฐาน 8 ต้องมี 0 นำหน้า การกำหนดค่าของเลขฐาน 16 ต้องมี 0x นำหน้า
Object Class (ต่อ) • constructor; • ใช้คืนค่า constructor ที่สร้าง object นี้ขึ้นมา ( ชื่อคลาสนั่นเอง ) varstr = new String(“iamsanya"); alert(str.constructor); • prototype;ใช้สร้าง Property หรือ Method ใหม่ให้กับ object varstr = new String ( "iamsanya1" ); str.propotype.getName= function () { return "iamsanya2"; } alert(str.getName() );
Object Class (ต่อ) • valueOf()ใช้คืนค่า ค่าข้อมูล ของ object varstr = new String (“iamsanya" ); alert (str.valueOf() ); • hasOwnProperty( property );ใช้กำหนด Property ให้กับ object varstr = new String ( "BambooLabCode" ); str.hasOwnProperty( "name" ) alert ( str.name ); • isPrototypeOf( parent_object );ใช้กำหนดให้ object สิบทอดมาจาก parent_object varstr = new STring ( "BambooLabcode" ); varname; name.isPrototypeOf ( str );
กำหนด Event, Action • Eventคือเหตุการณ์ต่างๆที่เกิดขึ้น เช่น ผู้ใช้คลิกเมาส์ ผู้ใช้กดปุ่มบนคีย์บอร์ด การพิมพ์ข้อมูลลงในฟอร์ม เป็นต้น • Actionคือการกระทำใดๆเมื่อมีเหตุการณืเกิดขึ้น เช่น เมื่อเกิดเหตุการณ์ที่ผู้ใช้คลิกเมาส์ การกระทำ ( action ) คือจะกำหนดให้ปรากฏ Message Box เป็นต้น • Event Bubble เป็นการตรวจจับ Event จากโค้ดภายในสุด ( tag ในสุด ) แล้วทำงานตามลำดับออกมาข้างนอกสุด ( tag นอกสุด ) เช่น browser IE • Event Propagation เป็นการตรวจจับ Event จากโค้ดภายนอกสุด ( tag นอกสุด ) แล้วทำงานตามลำดับเข้าไปข้างในสุด ( tag ในสุด ) เช่น browser Netscape
Event ใน JavaScript • content:onLoadจะทำงานเมื่อ มีการโหลด window หรือ frame ขึ้นมา • onUnLoadจะทำงานเมื่อ มีการกดปิด web page • onErrorจะทำงานเมื่อ มีความผิดพลาดเกิดขึ้นบน web page • onAbortจะทำงานเมื่อ มีการยกเลิกการทำงาน เช่น การหยุด download • onMoveจะทำงานเมื่อ มีการย้าย window หรือ frame • onResizeจะทำงานเมื่อ มีการปรับขนาดของ window หรือ frame • onScrollจะทำงานเมื่อ มีการเลื่อน scrollbar • onFocusจะทำงานเมื่อ object นั้นๆได้รับ focus • onBlurจะทำงานเมื่อ object นั้นๆสูญเสีย focus • onDblClickจะทำงานเมื่อ มีการ double click ที่ Object นั้นๆ • onClickจะทำงานเมื่อ มีการ click ที่ object นั้นๆ • onSubmitจะทำงานเมื่อ มีการกด submit ใน form • onResetจะทำงานเมื่อ มีการกด reset ใน form
Event ใน JavaScript (ต่อ) • onMouseMoveจะทำงานเมื่อ มีการเลื่อนเมาส์อยู่บน object • onMouseOverจะทำงานเมื่อ มีการเลื่อนเมาส์อยู่บน object นั้นๆครั้งแรก • onMouseOutจะทำงานเมื่อ มีการเลื่อนเมาส์ออกจาก object นั้นๆครั้งแรก • onMouseDownจะทำงานเมื่อ มีการคลิกเมาส์ลงบน object นั้นๆ • onMouseUpจะทำงานเมื่อ มีการปล่อยเมาส์ที่คลิกลงบน object นั้น • onKeyPressจะทำงานเมื่อ มีการกดปุ่มใดๆบน keyboard บน object นั้นๆ • onKeyDownจะทำงานเมื่อ มีการกดปุ่มใดๆบน Keyboard บน object นั้นๆ • onKeyUpจะทำงานเมื่อ มีการปล่อยปุ่มที่กดบน Keyboard บน object นั้น • onSelectจะทำงานเมื่อ มีการลาแถบสีคลุมข้อความในช่องรับข้อมูล • onChangeจะทำงานเมื่อ ข้อมูลในช่องรับข้อมูลมีการเปลี่ยนแปลง