Saturday, 26 September 2015

บทความเกี่ยวกับjavascript

JavaScript คืออะไร
JavaScript เป็นภาษายุคใหม่สำหรับการเขียนโปรแกรมบนระบบอินเทอร์เน็ตที่กำลังได้รับความนิยมอย่างสูง เราสามารถเขียน โปรแกรม JavaScript เพิ่มเข้าไปในเว็ปเพจเพื่อใช้ประโยชน์สำหรับงานด้านต่าง ๆ ทั้งการคำนวณ การแสดงผล การรับ-ส่งข้อมูล และที่ สำคัญคือ สามารถโต้ตอบกับผู้ใช้ได้อย่างทันทีทันใด นอกจากนี้ยังมีความสามารถด้านอื่น ๆ อีกหลายประการที่ช่วยสร้างความน่าสนใจให้ กับเว็บเพจของเราได้อย่างมาก ภาษาจาวาสคริปต์ถูกพัฒนาโดย เน็ตสเคปคอมมิวนิเคชันส์ (Netscape Communications Corporation) โดยใช้ชื่อว่า Live Script ออกมาพร้อมกับ Netscape Navigator2.0 เพื่อใช้สร้างเว็บเพจโดยติดต่อกับเซิร์ฟเวอร์แบบ Live Wire ต่อมาเน็ตสเคปจึงได้ร่วมมือกับ บริษัทซันไมโครซิสเต็มส์ปรับปรุงระบบของบราวเซอร์เพื่อให้สามารถติดต่อใช้งานกับภาษาจาวาได้ และได้ปรับปรุง LiveScript ใหม่เมื่อ ปี 2538 แล้วตั้งชื่อใหม่ว่า JavaScript
ลักษณะการทำงานของ JavaScript
JavaScript เป็นภาษาสคริปต์เชิงวัตถุ หรือเรียกว่า อ็อบเจ็กโอเรียลเต็ด (Object Oriented Programming) ที่มีเป้าหมายในการ ออกแบบและพัฒนาโปรแกรมในระบบอินเทอร์เน็ต สำหรับผู้เขียนเอาสารด้วยภาษา HTML สามารถทำงานข้ามแพลตฟอร์มได้ทำงานร่วมกับ ภาษา HTML และภาษาจาวาได้ทั้งทางฝั่งไคลเอนต์ (Client) และ ทางฝั่งเซิร์ฟเวอร์ (Server) โดยมีลักษณะการทำงานดังนี้ 1. Navigator JavaScript เป็น Client-Side JavaScript ซึ่งหมายถึง JavaScript ที่ถูกแปลทางฝั่งไคลเอนต์ (หมายถึงฝั่งเครื่อง คอมพิวเตอร์ของผู้ใช้ ไม่ว่าจะเป็นเครื่องพีซี เครื่องแมคอินทอช หรือ อื่น ๆ) จึงมีความเหมาะสมต่อการใช้งานของผู้ใช้ทั่วไปเป็นส่วนใหญ่ 2. LiveWire JavaScript เป็น Server-Side JavaScript ซึ่งหมายถึง JavaScript ที่ถูกแปลทางฝั่งเซิร์ฟเวอร์ (หมายถึงฝั่งเครื่อง คอมพิวเตอร์ของผู้ให้บริการเว้บ โดยอาจจะเป็นเครื่องของซันซิลิคอมกราฟิกส์ หรือ อื่น ๆ) สามารถใช้ได้เฉพาะกับ LIveWire ของเน็ตสเคป โดยตรง

JavaScript กับ HTML
การเขียน JavaScript เราอาจเขียนรวมอยู่ในไฟล์เดียวกันกับ HTML ได้ ซึ่งแตกต่างจากการเขียนโปรแกรมภาษา Java ที่ต้อง เขียนแยกออกเป็นไฟล์ต่างหาก ไม่สามารถเขียนรวมอยู่ในไฟล์เดียวกับ HTML ได้ วิธีการเขียน JavaScript เพื่อสั่งให้เว็ปเพจทำงาน มีอยู่ด้วยกัน 2 วิธี ดังนี้ - เขียนด้วยชุดคำสั่งและฟังก์ชันของ JavaScript เอง หรือ - เขียนตามเหตการณ์ที่เกิดขึ้นตามการใช้งานจากชุดคำสั่งของ HTML เมื่อเริ่มใช้งาน โปรแกรมบราวเซอร์ จะอ่านข้อมูลจากส่วนบนของเพจ HTML และทำงานไปตามลำดับจาก บนลงล่าง (top-down) โดยเริ่มที่ส่วน < HEAD >...< /HEAD > ก่อนจากนั้นจึงทำงานในส่วน < BODY >...< /BODY > เป็นลำดับต่อมา การทำงานของ JavaScript ดูไม่แตกต่างไปจาก HTML เท่าใดนัก แต่ HTML จะวางเลย์เอาต์โครงสร้างของอ็อบเจ็กต์ภายใน และส่วนเชื่อมโยงกับเว็บเพจเท่านั้น ในขณะที่ JavaScript สามารถเพิ่มเติมส่วนของการเขียนโปรแกรมและลอจิกเข้าไป
< FORM NAME ="statform" >
< INPUT type="text" name="username" size = 20 >
< INPUT type="text" name="userage" size = 3 >
< /FORM >
สมาชิก (ในที่นี้คือ INPUT 2 ชุด) ในแบบฟอร์ม statform ทำหน้าที่สะท้อนไปยังอ็อบเจ็กต์ document.statform.username และ document.statform.userage จากการอ้างอิงโดย JavaScript ทำให้เราสามารถนำอ็อบเจ็กต์นี้มาใช้งานได้ทันทีที่แบบฟอร์มนี้ถูก กำหนดขึ้นมา อย่างไรก็ตาม เราไม่สามารถใช้อ็อบเจ็กต์นี้ก่อนที่แบบฟอร์ม statform จะถูกกำหนดขึ้นมาได้ ตัวอย่างต่อไปนี้จะแสดงถึง ค่าต่าง ๆ ของอ็อปเจ็กต์ในสคริปต์ที่อ้างถึงแบบฟอร์ม


ตัวอย่าง
< SCRIPT >
document.write(document.statform.username.value) document.write(document.statform.userage.value)
< /SCRIPT >
ถ้าเราเขียนสคริปต์ไว้ก่อนคำสั่งกำหนดแบบฟอร์ม เราจะพบความผิดพลาดจากการเรียกใช้อ็อปเจ็กต์ที่ไม่ได้มีอยู่จริงในโปรแกรม Navigator
ตัวแปร
การทำงานของโปรแกรมคอมพิวเตอร์ไม่ว่าจะเป็นโปรแกรมชนิดใดก็ตาม ส่วนใหญ่ แล้วมักมีขั้นตอนและกลไกการทำงานเป็นแบบอย่างเฉพาะตัว โดยเฉพาะเรื่องเกี่ยวกับรูปแบบของภาษา การใช้ประโยคข้อคำสั่ง การใช้ข้อมูลและ ตัวแปร ฯลฯ ภาษา JavaScript ก็เช่นกัน การทำความเข้าใจและ การใช้ข้อมูลจึงเป็น พื้นฐานสำคัญก่อนที่จะนำไปสู่การเรียนรู้เกี่ยวกับการเขียนโปรแกรมด้วย JavaScript ขั้นซับซ้อนต่อไป
ตัวแปร
ตัวแปร (Variable) หมายถึง ชื่อหรือสัญลักษณ์ที่ตั้งขึ้นสำหรับการเก็บค่าใด ๆ ที่ไม่คงที่ โดยการจองเนื้อที่ในหน่วยความจำของระบบเครื่องที่เก็บข้อมูลซึ่งสามารถอ้างอิงได้ มีขนาดขึ้นอยู่กับชนิดของข้อมูลและค่าของข้อมูล ซึ่งค่าในตัวแปรนี้สามารถเปลี่ยนแปละได้ตามคำสั่งในการประมวลผล


การตั้งชื่อ
การตั้งชื่อ (Identifier or Name) เป็นชื่อที่ตั้งขึ้นมาเพื่อกำหนดให้เป็นชื่อของโปรแกรมหลัก, ฟังก์ชัน, ตัวแปร, ค่าคงที่, คำสั่ง และคำสงวน โดยมีหลักการตั้งชื่อว่า
ขึ้นต้นด้วยตัวอักษรในภาษาอังกฤษ ตามด้วยตัวอักษรหรือตัวเลขใด ๆ ก็ได้
ห้ามเว้นช่องว่าง
ห้ามใช้สัญลักษณ์พิเศษ ยกเว้นขีดล่าง (_) และดอลล่าร์ ($)
สำหรับความยาวของชื่อใน JavaScript จะมีความยาวเท่าใดก็ได้ แต่ที่นิยมใช้ ไม่เกิน 20 ตัวอักษร
การตั้งชื่อมีข้อพึงระวังว่า จะต้องไม่ซ้ำกับคำสงวน (Reserve word) และตัวอักษรของชื่อจะจำแนกแตกต่างกันระหว่างอักษรตัวพิมพ์เล็กกับอักษรตัวพิมพ์ใหญ่
ควรจะตั้งชื่อโดยให้ชื่อนั้นมีสื่อความหมายให้เข้ากับข้อมูล สามารถอ่านและเข้าใจได้
ตัวอย่างชื่อที่ถูกต้อง Hahaha, I_Love_you, Doll$ เป็นต้น
คำสงวน
คำสงวน (Reserve word) เป็นคำที่มีความหมายเฉพาะตัวในภาษา JavaScript สงวนไม่ให้มีการตั้งชื่อซ้ำกับชื่อโปรแกรม, ฟังก์ชัน, ตัวแปร, ค่าคงที่ และคำสั่ง คำสงวน สามารถเรียกใช้ได้ทันทีโดยไม่ต้องมากำหนดความหมายใหม่แต่อย่างใด



ชนิดข้อมูลของตัวแปร
ชนิดของข้อมูลของตัวแปร (Data Type) เป็นการกำหนดประเภทค่าของข้อมูลให้กับตัวแปร เพื่อให้เหมาะสมกับการอ้างอิงข้อมูลจากตัวแปรในการใช้งาน ชนิดข้อมูลของตัวแปรนั้นมีอยู่ด้วยกัน 4 ชนิด ได้แก่
number หมายถึง ข้อมูลชนิดตัวเลข ประกอบด้วย เลขจำนวนเต็ม (Integer) และเลขจำนวนจริง (Floating)
logical หมายถึง ข้อมูลทางตรรกะ มี 2 สถานะ คือ จริง (True) และเท็จ (False)
string หมายถึง ข้อมูลที่เป็นข้อความ ซึ่งจะต้องกำหนดไว้ในเครื่องหมายคำพูด ("...")
null หมายถึง ไม่มีค่าข้อมูลใดๆ ซึ่งค่า null ใช้สำหรับการยกเลิกพื้นที่เก็บค่าของตัวแปรออกจากหน่วยความจำ
การประกาศตัวแปร
การประกาศตัวแปร (Declarations) เป็นการกำหนดชื่อและชนิดข้อมูลให้กับตัวแปรเพื่อนำไปใช้ในโปรแกรม โดยการตั้งชื่อจะต้องคำนึงถึงค่าของข้อมูลและ ชนิดของข้อมูลที่อ้างอิง นอกจากนี้การตั้งชื่อควรให้สื่อความหมายของข้อมูล และอักษรของชื่อจะจำแนกแตกต่างกันระหว่างอักษรตัวพิมพ์เล็กกับอักษรตัวพิมพ์
รูปแบบ

Var ชื่อตัวแปร; เป็นรูปแบบการประกาศตัวแปรปกติ
หรือ
Var ชื่อตัวแปร = ข้อมูล; เป็นรูปแบบการกำหนดค่าเริ่มต้น
ในกรณีที่ต้องการกำหนดตัวแปรหลายตัวในบรรทัดเดียวกันให้ใช้เครื่องหมาย คอมม่า ( , ) คั่นระหว่างชื่อตัวแปรและปิดท้ายด้วยเครื่องหมายเซมิโคล่อน ( ; )
การกำหนดค่าให้กับตัวแปร
รูปแบบ
ชื่อตัวแปร = ค่าของข้อมูล
โดยที่
         ค่าของข้อมูล ได้แก่
1. ข้อมูลที่เป็นตัวเลข โดยกำหนดตัวเลขไปได้เลย เช่น num = 500
2. ข้อมูลในทางตรรกะ ได้แก่ จริง (True) หรือ เท็จ (False) เช่น test = True;
3. ข้อมูลสตริง ให้กำหนดอยู่ในเครื่องหมายคำพูด ("...") เช่น name = "Adisak";
ตัวแปรมี 2 จำพวก หากเรากำหนดชื่อตัวแปรไว้ที่โปรแกรมหลักโดยไม่ได้อยู่ภายในขอบเขตฟังก์ชันใด ๆ เราเรียกว่าเป็นตัวแปรแบบโกลบัล (global) ตัวแปรจำพวกนี้จะมีค่าคงอยู่ในหน่วยความจำตลอกการทำงานของโปรแกรม ทำให้สามารถเรียกใช้ได้จากทุก ๆ ส่วนของโปรแกรม รวมถึงภายในฟังก์ชันต่าง ๆ ด้วย
แต่ถ้ากำหนดตัวแปรไว้ภายในขอบเขตฟังก์ชันใด ๆ เราจะเรียกว่าเป็นตัวแปรแบบ โลคัล (local) เพราะจะเป็นตัวแปรที่มีค่าคงอยู๋ และสามารถเรียกใช้ได้เฉพาะ ภายในขอบเขตของฟังก์ชันนั้น ๆ เท่านั้น



ตัวแปรแบบอาร์เรย์
ตัวแปรแบบอาร์เรย์ (Array) หมายถึงตัวแปรซึ่งมีค่าได้หลายค่าโดยใช้ชื่ออ้างอิงเพียงชื่อเดียว ด้วยการใช้หมายเลขลำดับเป็นตัวจำแนกความแตกต่างของค่าตังแปรแต่ละตัว ถ้าเราจะเรียกตัวแปรชนิดนี้ว่า "ตัวแปรชุด" ก็เห็นจะไม่ผิดนัก ตัวแปรชนิดนี้มีประโยชน์มาก ลองคิดถึงค่าข้อมูลจำนวน 100 ค่า ที่ต้องการเก็บไว้ในตัวแปรจำนวน 100 ตัว อาจทำให้ต้องกำหนดตัวแปรที่แตกต่างกันมากถึง 100 ชื่อ กรณีอย่างนี้ควรจะทำอย่างไรดี แต่ด้วยการใช้คุณสมบัติอาร์เรย์ เราสามารถนำตัวแปรหลาย ๆ ตัวมาอยู่รวมเป็ฯชุดเดียวกันได้ และสามารถเรียกใช้ตัวแปรทั้งหมดโดยระบุผ่านชื่อเพียงชื่อเดียวเท่านั้น ด้วยการระบุหมายเลขลำดับ หรือ ดัชนี(index) กำกับตามหลังชื่อตัวแปร ตัวแหรเพียงชื่อเดียวจึงมีความสามารถเทียบได้กับตัวแปรนับร้อยตัว พันตัว (ตัวที่ 1) ในตัวแปรแบบอาร์เรย์มีดัชนีเป็น 0 ส่วนตัวแปรต่อ ๆ ไปก็จะมีดัชนีเป็น 1,2,3,... ไปตามลำดับ เมื่อต้องการระบุชื่อตัวแปรแบบอาร์เรย์แต่ละตัว ก็จะใช้รูปแบบ name[0], name[1],... เรียงต่อกันไปเรื่อยๆ เราสามารถสร้างตัวแปรอาร์เรย์ใหม่ด้วย myArray = new Array() ดังนี้
           myArray[0] = 17;
           myArray[1] = "Nun";
           myArray[2] = "Stop";
ค่าคงที่
ค่าคงที่ (Literal หรือ Constant) หมายถึง ค่าของข้อมูลที่เมื่อกำหนดแล้วจะทำการเปลี่ยนแปลงค่าเป็นอย่างอื่นไม่ได้ ชนิดข้อมูลของค่าคงที่ได้แก่
เลขจำนวนเต็ม (Integer) เป็นตัวเลขที่ไม่มีเศษทศนิยม สามารถเขียนให้อยู่ในแบบ เลขฐานสิบ (0-9), เลขฐานสิบหก (0-9, A-F) หรือ เลขฐานแปด (0-7) โดยการเขียนเลขฐานแปดให้ นำหน้าด้วย O (Octenary)ส่วนการเขียนเลขฐานสิบหกให้นำหน้าด้วย Ox หรือ OX (Hexadenary)
 เลขจำนวนจริง (Floating) ใช้รูปแบบการเขียนโดยประกอบไปด้วยตัวเลข จุดทศนิยมและตัวเลขยกกำลัง E (Exponential) เช่น
o 5.00E2 จะหมายถึงo ค่า 5.00 คูณด้วย 10 ยกกำลังo 2 จะมีค่าเป็น 500
o 3.141E5 จะหมายถึงo ค่า 3.141 คูณด้วย 10 ยกกำลังo 5 จะมีค่าเป็น 314,1000
ค่าบูลีน (Boolean) เป็นค่าคงที่เชิงตรรกะ คือมีค่าเป็น จริง(True) และ เท็จ(False) เท่านั้น
ข้อความสตริง (String) เป็นค่าคงที่แบบข้อความที่อยู่ภายในเครื่องหมายคำพูด ("..." หรือ '...') เช่น "บริษัท เอ็กซ์ทรีม จำกัด", 'นางนฤมล เวชตระกูล'
รหัสคำสั่งพิเศษ
รหัสคำสั่งพิเศษ (Character escape code) เป็นการกำหนดรหัสเพื่อควบคุมงานพิมพ์สตริงโดยใช้เครื่องหมาย \ (Backslash) นำหน้าตัวอักษรที่ต้องการกำหนดเป็นรหัส เพื่อให้กลายเป็นรหัสคำสั่งพิเศษ
           รหัส Character escape code
           \b หมายถึง ลบไปทางซ้าย (Back Space)
           \f หมายถึง เลื่อนกระดาษไปอีก 1 หน้า (Form Feed)
           \n หมายถึง ขึ้นบรรทัดใหม่ (New Line)
           \r หมายถึง ตรวจสอบการกด Enter (Return) และการเลื่อนขึ้นบรรทัดใหม่ของหน้าระดาษ
           \t หมายถึง เลื่อนตำแหน่งไปทางขวา 1 ช่วงแท็บ (Tab)
           \\ หมายถึง เติมเครื่องหมาย \ (Backslash)
           \" หมายถึง เติมเครื่องหมายคำพูด
ตัวอย่าง
           ถ้าเราต้องการให้ตัวแปร yoyo เก็บข้อความ C:\JavaScript จะกำหนดดังนี้
           yoyo = "C:\\JavaScript" ; จะได้ผลลัพธ์เป็น C:\JavaScript

ตัวอย่าง
           ถ้าต้องการแสดงเครื่องหมายคำพูด ("...") ในประโยคข้อความ เช่นต้องการให้ตัวแปร Know เก็บข้อความ คุณรู้จัก "จาวาสคริปต์" แล้วหรือยังจะกำหนดดังนี้
Know = "คุณรู้จัก \"จาวาสคริปต์\" แล้วหรือยัง"
ให้สังเกตว่าเราจะใช้ (\") ในการควบคุมการพิมพ์
ข้อคำสั่ง (Statement)
ข้อคำสั่ง (Statement) คือ ถ้อยแถลงหรือข้อความคำสั่งที่สั่งให้จาวาสคริปต์ ดำเนินงานตามลำดับที่ได้สั่งไว้ การเขียนข้อคำสั่งจะสิ้นสุดหรือจบข้อคำสั่งด้วยเครื่องหมาย เซมิโคล่อน(;)
ตัวอย่างการกำหนดข้อคำสั่ง 2 คำสั่ง
           กำหนดให้ตัวแปร name เก็บชื่อ Adisak
ให้พิมพ์ประโยคข้อความว่า My name is Adisak จะกำหนดได้ดังนี้
           name = "Adisak";
           document.write("My name is "+name);
นิพจน์
นิพจน์ (Expression) เป็นข้อคำสั่งที่ใช้กำหนดค่าของข้อมูล เช่น การบวกตัวเลข การเปรียบเทียบข้อมูล โดยการกำหนดชื่อของตัวแปร ตามด้วยเครื่องหมายที่ต้องการกระทำ (Operations) ต่อข้อมูลเป็นผลให้เกิดค่าข้อมูลใหม่ค่าหนึ่งให้กับตัวแปรเพื่อนำไปใช้งาน



นิพจน์ JavaScript มีด้วยกัน 3 ชนิดดังนี้
           1. นิพจน์คณิตศาสตร์ (Arithmetic) เป็นนิพจน์ที่ใช้เครื่องหมายทางคณิตศาสตร์เป็นตัวกระทำ ผลลัพธ์ที่ได้จะมีค่าเป็นตัวเลขให้กับตัวแปร
เช่น ให้ตัวแปร num เก็บตัวเลข 5000 จะเขียนได้ดังนี้
num = 5000;
           2. นิพจน์ตรรกะ (Logical) เป็นนิพจน์ในการเปรียบเทียบข้อมูลโดยใช้เครื่องหมายในการเปรียบเทียบเพื่อตรวจสอบข้อมูลในการเปรียบเทียบว่าจริงหรือเท็จ
เช่น กำหนดให้
a = 50;
b = 70;
c = b>a;
ผลลัพธ์ที่ได้คือ c จะมีค่าเป็นจริง (True)
           3. นิพจน์ข้อความ (String)
           เป็นนิพจน์เกียวกับการกำหนดข้อความ การเชื่อประโยคข้อความ ใช้ประมวลผลข้อความในลักษณะต่าง ผลลัพธ์ที่ได้จึงมีค่าเป็ฯตัวอักษรหรือข้อความเสมอ
เช่น ให้ตัวแปร name เก็บชื่อ Adisak จะเขียนได้ดังนี้
name = "Adisak";
ตัวดำเนินการ
ตัวดำเนินการ (Operator) หมายถึง เครื่องหมายกำหนดกรรมวิธีทางคณิตศาสตร์, พีชคณิต, บูลีน, การเปรียบเทียบ ระหว่างข้อมูล 2 ตัว ซึ่งเรียกว่า โอประแรนด์(Operand) โดยอาจมีค่าเป็นตัวเลข ข้อความ ค่าคงที่ หรือตัวแปรต่าง ๆ



ชนิดของตัวดำเนินการ
ตัวดำเนินการคณิตศาสตร์
ตัวดำเนินการคณิตศาสตร์ (Arithmetic operator) หมายถึง ใช้สำหรับคำนวณโอประแรนด์ที่เป็นค่าคงที่หรือตัวแปรก็ได้ โดยให้ค่าผลลัพธ์เป็นตัวเลขค่าเดียว โอประเรเตอร์ เชิงคณิตศาสตร์ที่คนส่วนใหญ่รู้จักคุ้นเคยกันมากที่สุดได้แก่
           + หมายถึง เครื่องหมายการบวก
           - หมายถึง เครื่องหมายการลบ
           * หมายถึง เครื่องหมายการคูณ
           / หมายถึง เครื่องหมายการหาร
           % หมายถึง เครื่องหมายหาเศษที่ได้จากการหารที่เรียกว่า โมดูลัส(Modulus)
           ++ หมายถึง เครื่องหมายการเพิ่มค่าที่เรียกว่า อินครีเมนต์(increment) โดยจะเพิ่มค่าครั้งละ 1
           -- หมายถึง เครื่องหมายการลดค่าที่เรียกว่า ดีครีเมนต์(decrement) โดยจะลดค่าครั้งละ 1
           (-) หมายถึง เครื่องหมายแปลงค่าให้กลายเป็นค่าตรงกันข้ามกับค่าเดิมที่เรียกว่า ยูนารีนีเกชัน (unary negation)
เช่น x = 20 % 3; ผลลัพธ์คือ x จะมีค่าเป็น 2
เช่น ถ้า x = -100 ดังนั้น -x จะมีค่าเท่ากับ 100 เป็นต้น


ตัวดำเนินการเชิงเปรียบเทียบ
ตัวดำเนินการเชิงเปรียบเทียบ (Comparison operator) หมายถึง เครื่องหมายในการเปรียบเทียบข้อมูล ผลลัพธ์ที่ได้จะมีค่าตรรกบูลลีนเป็น จริง (True) และ เท็จ (False) ได้แก่
           == หมายถึง เครื่องหมายเท่ากับ
           != หมายถึง เครื่องหมายไม่เท่ากับ
           > หมายถึง เครื่องหมายมากกว่า
           >= หมายถึง เครื่องหมายมากกว่าหรือเท่ากับ
           < หมายถึง เครื่องหมายน้อยกว่า
           <= หมายถึง เครื่องหมายน้อยกว่าหรือเท่ากับ
ตัวดำเนินการกำหนดค่า
ตัวดำเนินการกำหนดค่า (Assignment operator) หมายถึง เครื่องหมายในการกำหนดให้ตัวแปรที่อยู่ทางฝั่งซ้าย มีค่าเท่ากับค่าเดิมในตัวแปรนั้น "กระทำ" (บวก, ลบ, คูณ, หาร) กับอีกตัวแปรหนึ่งที่อยู่ทางฝั่งขวา ได้แก่
   x = y หมายถึง กำหนดค่า y ให้กับตัวแปร x
   x += 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 = "Bodin";
Say = "Hey "+Name;
ผลลัพธ์ที่ได้ Say จะมีข้อความเป็น Hey Bodin
ตัวดำเนินการระดับบิต
ตัวดำเนินการระดับบิต (Bitwise operator) เป็นการดำเนินการเชิงตรรกะในระดับบิต โดยจะใช้มุมมองในแบบเลขฐาน 2 มาจัดการกับข้อมูล นั่นคือ ข้อมูลตัวเลขนั้นจะถูกแปลงเป็นเลขฐานสองในหน่วยความจำในขณะที่มีการดำเนินการเชิงตรรกะในระดับบิต ซึ่งโดยปกติแล้วการกระทำใน JavaScript จะอยู่ในระดับตัวอักษร ที่เรียกว่า ระดับไบต์ (byte) โดยตัวดำเนินการระดับบิตมีรายละเอียดดังนี้
           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 = += -= *= /= %= <<= >>= >>>= &= ^= !=
การสร้างตัวแปรอาร์เรย์
ก่อนที่จะมีการใช้งานอาร์เรย์นั้น เรา จะต้องทำการปะกาศตัวแปรที่มีลักษณะเป็นอาร์เรย์เสียก่อน เพื่อให้โปรแกรมรู้จักชื่อของตัวแปรที่จะกำหนดเป็นอาร์เรย์ พร้อมถึงการกำหนดขนาดของพื้นที่ในหน่วยความจำสำหรับเก็บค่าของข้อมูล รายละเอียดของการประกาศสร้างตัวแปรอาร์เรย์ มีดังต่อไปนี้
การประกาศตัวแปรอาร์เรย์
ชื่อตัวแปรอาร์เรย์ = new Array (จำนวนสมาชิก);
รายละเอียดมีดังนี้
จำนวนสมาชิก หมายถึง การกำหนดการจองพื้นที่ในหน่วยความจำ ให้กับตัวแปรเพื่อรองรับข้อมูลที่กำหนด โดยปกติจะกำหนดหรือไม่ก็ได้ เพราะอาร์เรย์ของจาวาสคริปต์มีความยืดหยุ่นมากสำหรับในการรับจำนวนสมาชิก
การกำหนดค่าให้กับตัวแปรอาร์เรย์
ตัวแปร [Index] = ข้อมูล;
รายละเอียดมีดังนี้
Index หมายถึง หมายเลขลำดับของพื้นที่ที่เก็บข้อมูลโดยเริ่มนับตั้งแต่ 0, 1, 2, ... เป็นต้นไป


โปรแกรมตัวอย่าง การกำหนดค่าให้ตัวแปร Array
           กำหนดให้ตัวแปร MyArray เป็นตัวแปรอาร์เรย์ มีจำนวนสมาชิก 3 พื้นที่ ประกอบไปด้วยข้อมูล
           ตัวแปรอาร์เรย์ MyArray ลำดับที่ 0 เก็บข้อมูล "First"
           ตัวแปรอาร์เรย์ MyArray ลำดับที่ 1 เก็บข้อมูล "Second"
           ตัวแปรอาร์เรย์ MyArray ลำดับที่ 2 เก็บข้อมูล "Third"
การรับข้อมูลให้กับตัวแปรอาร์เรย์
การรับข้อมูลให้กับตัวแปรอาร์เรย์ เป็นวิธีการในการกำหนดค่าให้กับตัวแปรอาร์เรย์ โดยป้อนข้อมูลที่ต้องการผ่านแป้นพิมพ์โดยใช้คำสั่ง PROMPT( ... ) ในการรับข้อมูลมีรายละเอียดดังนี้
ตัวแปร [Index] = prompt("ข้อความนำ", "ค่าเริ่มต้น");
รายละเอียดมีดังนี้
ตัวแปร หมายถึง ตัวแปรที่อ้างอิงเพื่อรอรับเก็บข้อมูลที่ป้อนได้จากแป้นพิมพ์
Index หมายถึง หมายเลขลำดับของพื้นที่ที่เก็บข้อมูล โดยเริ่มนับตั้งแต่ 0, 1, 2, ...
ข้อความนำ หมายถึง ข้อความที่ต้องการให้ปรากฎแสดงในกรอบโต้ตอบเพื่อบอกว่าต้องการให้ทำอะไร
ค่าเริ่มต้น หมายถึง ค่าของข้อมูลหรือข้อความใด ๆ ที่ต้องการให้ปรากฎในช่องของการกรอกข้อมูลบนกรอบโต้ตอบ จะกำหนดหรือไม่ก็ได้ แต่ถ้าไม่กำหนดค่าเริ่มต้นใด ๆ ภายในกรอบการกรอกข้อมูล จะแสดงข้อความ undefined ออกมา
เมื่อมีการป้อนข้อมูลที่ต้องการแล้ว จะมีปุ่มคำสั่งให้เลือกดังนี้
           ปุ่ม OK จะทำหน้าที่นำข้อมูลที่ป้อนนั้นมาเก็บลงยังตัวแปรที่กำหนด
           ปุ่ม Cancel จะทำหน้าที่ยกเลิกข้อมูล ทำให้ตัวแปรที่รอรับค่านั้นไม่มีค่าข้อมูลใด ๆ จะมี ผลให้ตัวแปรนั้นพิมพ์คำว่า null ออกมา ซึ่งหมายถึงไม่มีค่านั่นเอง

การกำหนดค่าเริ่มต้นให้กับอาร์เรย์
การกำหนดค่าเริ่มต้นให้กับอาร์เรย์ (Intial value) เป็นการกำหนดค่าโดยตรงให้กับตัวแปรอาร์เรย์ ในขณะที่มีการประกาศเริ่มใช้ตัวแปรอาร์เรย์ ค่าที่กำหนดนี้ถือว่าเป็นค่าเริ่มต้นในการกำหนดค่าใด ๆ ให้กับตัวแปรอาร์เรย์ ค่าเหล่านี้มักใช้ในกรณีเหมือนค่าคงที่ใช้สำหรับเปรียบเทียบหรือใช้สำหรับอ้างอิงกับข้อมูลอื่น ๆ และโดยทั่วไปก็ยังคงมีการใช้งานและกำหนดค่าเหมือนตัวแปรอาร์เรย์ปกติ มีรูปแบบการกำหนดดังนี้
รูปแบบ
ชื่อตัวแปรอาร์เรย์ = new Array (ข้อมูล1, ข้อมูล2, ... );
รายละเอียดมีดังนี้
ข้อมูล หมายถึง ค่าของข้อมูลที่กำหนดโดยตรงให้กับตัวแปรอาร์เรย์
ส่วนเรื่องการจองพื้นที่ในหน่วยความจำให้กับตัวแปนอาร์เรย์ จะขึ้นอยู่กับจำนวนของข้อมูลที่กำหนด เช่นต้องการกำหนดตัวเลข 120, 150, 200 เป็นค่าเริ่มต้อนให้กับตัวแหรอาร์เรย์ num เขียนได้ดังนี้
num = new Array(120,150,200);
นั่นหมายถึงตัวเลข 120, 150 และ 200 จะถูกเก็บลงยังตัวแปรอาร์เรย์ num[0], num[1], num[2] ตามลำดับ
ฟังก์ชันและเมธอด
ฟังก์ชัน (Function) โดยเนื้อแท้แล้วก็คือโปรแกรมย่อย เป็นส่วนของโปรแกรมที่ถูกกำหนดให้ทำงานใดงานหนึ่งจนสำเร็จ มีประโยชน์ตรงที่ช่วยเหลือการทำงาน หรือตอบสนองการทำงานต่อโปรแกรมหลัก เมื่อมีการเรียกใช้งาน และมีประโยชน์ทำให้โครงสร้างของโปรแกรม มีขนาดเล็กลง เมื่อมีการเรียกใช้งานเดิมซ้ำๆ หลายๆ ครั้ง แทนที่จะเขียนคำสั่งเดิมเพิ่มขึ้นใหม่ซ้ำๆ หลายครั้ง ทำให้ดูสิ้นเปลืองเนื้อที่ ซ้ำซ้อนและเสียเวลาการทำงาน นอกจากนี้ฟังก์ชันยังทำให้โปรแกรมอ่านได้ง่ายขึ้น สะดวกในการหาจุดที่ผิดและง่ายต่อการปรับปรุงแก้ไขพัฒนาโปรแกรมให้ดียิ่งขึ้น
ชนิดของฟังก์ชัน
ฟังก์ชันใน ภาษาJavaScript มีอยุ่ด้วยกัน 2 แบบ คือ
ฟังก์ชันมาตรฐาน (Standard Function) เป็นแบบชื่อของฟังก์ชันที่มีอยู่แล้วในภาษา JavaScript เราสามารถนำเอาไปใช้งานได้ทันที
ฟังก์ชันสร้างขึ้นเอง (User-defined Function) เป็นแบบชื่อของฟังก์ชันที่ผู้ใช้สร้างขึ้นมาใช้เอง เพื่อกำหนดให้ทำงานใดงานหนึ่งจนสำเร็จ เราอาจจะเรียกฟังก์ชันสร้างขึ้นเองนี้สั้นๆ ว่าฟังก์ชัน (Function)ก็ได้
การเรียกใช้ฟังก์ชัน
เป็นการกำหนดทิศทางการทำงานของคำสั่ง หรือ กำหนดส่วนของโปรแกรมให้ทำงานใดงานหนึ่งจนสำเร็จ โดยอ้างอิงชื่อฟังก์ชันของการทำงานที่ต้องการผลของการเรียกใช้ฟังก์ชันจะมีการส่งค่าคืนกลับไปยังโปรแกรมส่วนที่เรียก โดยใช้ชื่อฟังก์ชันเป็นตัวเก็บค่าเปรียบเสมือนหนึ่งกับเป็นตัวแปร
เมื่อต้องการใช้งานก็ให้พิมพ์ชื่อฟังก์ชันนี้ลงไปตรง ๆ แต่จะต้องจำให้แม่นว่าต้องพิมพ์ให้เหมือนทั้งชื่อและตัวอักษรตัวพิมพ์ใหญ่-เล็ก มีรูปแบบการเรียกใช้ดังนี้
รูปแบบ
ตัวแปร = ชื่อฟังก์ชัน();
โดยกำหนดให้
ตัวแปร ทำหน้าที่เก็บผลลัพธ์ที่ได้จากการอ้างอิงเรียกใช้ฟังก์ชัน เพื่อให้ทำงานใดงานหนึ่งจนสำเร็จ

การสร้างฟังก์ชันขึ้นใช้เอง
การสร้างฟังก์ชันขึ้นใช้เอง (User-defined Function) เป็นแบบชื่อของฟังก์ชันที่ผู้ใช้สร้างขึ้นมาเพื่อกำหนดให้ทำงานใดงานหนึ่งจนสำเร็จ การสร้างฟังก์ชันนั้นจะขึ้นต้นด้วยคำว่า function ตามด้วยชื่อของฟังก์ชันที่ต้องการ มีรายละเอียดดังนี้
รูปแบบ

function ชื่อฟังก์ชัน (พารามิเตอร์1, พารามิเตอร์2, ...)
  { ข้อคำสั่ง
  ............
  ............
  }
โดยกำหนดให้
ชื่อฟังก์ชัน (function name) - หมายถึง ชื่อของฟังก์ชันที่สร้างขึ้น ที่ไม่ไปซ้ำกับชื่อของฟังก์ชันอื่น
พารามิเตอร์ (parameter) - หมายถึง ค่าของข้อมูลหรือตัวแปรที่อ้างอิง(arguement) แล้วส่งผ่านไปยังฟังก์ชัน ต้องระบุอยู่ภายในเครื่องหมายวงเล็บเท่านั้น โดยจะมีพารามิเตอร์เพียงตัวเดียว, หลายตัว หรือไม่มีเลยก็ได้ กรณีที่มีพารามิเตอร์หลาย ๆตัว แต่ละตัวจะต้องเขียนแยกออกจากกันด้วยเครื่องหมายจุลภาค (,)
ข้อคำสั่ง (statements) - หมายถึง คำสั่งต่าง ๆ ที่ประกอบขึ้นเพื่อให้ดำเนินงานภายในฟังก์ชัน ต้องกำหนดคำสั่งต่าง ๆ ภายใต้เครื่องหมายวงเล็บปีกกา { ... }
การวางตำแหน่งฟังก์ชัน
สำหรับการวางตำแหน่งฟังก์ชันในภาษาJavaScript ก็มีลักษณะเช่นเดียวกับการวางตำแหน่งสคริปต์ นั่นคือจะวางไว้ในส่วนของ <HEAD> หรือวางไว้ในส่วนของ <BODY>อย่างไรก็ขึ้นอยู่กับว่าต้องการให้ฟังก์ชันนนั้นถูกโหลดใช้งานก่อนหรือหลังตามลำดับการเรียกใช้งานอย่างไร
ในกรณีที่ฟังก์ชันนั้นมีการถูกเรียกใช้บ่อยครั้งจากส่วนอื่น ๆ ของโปรแกรม ทางคณะผู้จัดทำแนะนำว่า ควรจะกำหนดฟังก์ชันไว้ในส่วนของ <HEAD> เพราะเมื่อมีการเรียกใช้โหลดเว็บเพจขึ้นมา ฟังก์ชันต่าง ๆ ที่กำหนดในส่วน <HEAD> จะถูกโหลดเข้ามาเก็บไว้ในหน่อยความจำก่อนเป็นอันดับแรก ทำให้เราสามารถเรียกใช้ฟังก์ชันจากตำแหน่งใดๆ บนเอกสาร HTML หรือบนขอบเขต <SCRIPT> ได้อย่างต่อเนื่อง และนอกจากนี้ฟังก์ชันยังสามารถเรียกใช้ฟังก์ชันอื่นๆ ที่กำหนดในส่วน <HEAD> ทำงานร่วมกันได้อีกด้วย
รูปแบบ

<html>
<head><tiltle> ข้อความแถบเรื่อง </title>
<script Language = "JavaScript">
<!-- ข้อความหมายเหตุ ...
function ชื่อฟังก์ชัน (พารามิเตอร์1, พารามิเตอร์2, ...)
{ ข้อคำสั่ง ;
................
}
กลุ่มโค้ดคำสั่งของภาษาจาวาสคริปต์
// ข้อความหมายเหตุ -->
</script>
</head>
<body>
ข้อความเอกสาร html
................................
<script Language = "FavaScript">
กลุ่มโค้ดคำสั่งของภาษาจาวาสคริปต์
....................................................
</script>
</body>
</html>
โดยกำหนดให้
กลุ่มโค้ดคำสั่งของภาษาจาวาสคริปต์ หมายถึง คำสั่งใด ๆ หรือ ฟังก์ชัน หรือ การเรียกใช้ฟังก์ชันที่ต้องการใช้งาน
หน้าต่างเตือนเมื่อคลิกบนปุ่ม
<form>
<input type="button" value="message" onClick="alert('this is the message'); return true">
</form>
หมายเหตุ
ทดลองนำไปใช้ปุ่ม Tag อื่นๆ ของ FORM ดูสิครับ เช่น

ตัวอย่างการประยุกต์ใช้กับ Radio Button
<FORM>
<p>HTML เป็นคำย่อของ ?
<p> 1: <INPUT TYPE="radio" NAME="radio" value="เก่งมากครับ"
onClick="alert(value)">
HyperText Markup Language <br>
2: <INPUT TYPE="radio" NAME="radio" value="แน่ใจหรือครับว่าถูก ลองดูใหม่สิครับ"
onClick="alert(value)">
HyperText Making Language <br>
3: <INPUT TYPE="radio" NAME="radio" value="แน่ใจหรือครับว่าถูก ลองดูใหม่สิครับ"
onClick="alert(value)">
HyperText Marking Learning
</FORM>
ตัวอย่างการประยุกต์ใช้กับ Button
<form>
<p><font face="MS Sans Serif, Microsoft Sans Serif" size="1">HTML
เป็นคำย่อของ ? </font>
<p><font face="MS Sans Serif, Microsoft Sans Serif" size="1">
1:
<input type="button" name="button" value="HyperText Markup Language " onClick="alert('เก่งมากครับ'); return true">
</font>
<p><font face="MS Sans Serif, Microsoft Sans Serif" size="1">2:
<input type="button" name="button" value="HyperText Making Language " onClick="alert('ลองดูอีกทีสิครับ'); return true">
</font>
<p><font face="MS Sans Serif, Microsoft Sans Serif" size="1">3:
<input type="button" name="button" value="HyperText Marking Learning " onClick="alert('ผิดแล้วล่ะครับ'); return true">
</font>
</form>

หน้าต่างเดือนก่อนปิดหน้าเว็บ
เคยเห็นไหมครับ บางเว็บพอคลิกปิด จะมีหน้าต่างเล็กๆ แสดงข้อความกล่าวลา เช่น "ขอบคุณที่เยี่ยมชม แล้วอย่าลืมกลับมาเรียกชมอีกน่ะครับ"
ไม่ยากเลยครับ แค่เอารหัสคำสั่งที่แสดงด้วยสีแดง ไปเติมในส่วนแท็ก Body ดังนี้
<body onUnload="window.alert('ตรงนี้เติมข้อความเองน่ะครับ')">
ตรวจสอบบราวเซอร์
โดยปกติชุดคำสั่งในการสร้างเอกสารเว็บ จะมีการพัฒนาแตกต่างกันไปตามค่ายของบราวเซอร์ ดังนั้นหากต้องการแสดงผลหน้าเว็บให้สมบูรณ์ในแต่ละบราวเซอร์ ควรกำหนดหน้าเว็บแยกตามค่ายของบราวเซอร์ เช่น หน้าแรกของเว็บควรสร้างไว้ 2 หน้า โดยหน้าหนึ่งสำหรับแสดงผลบนบราวเซอร์ค่าย Microsoft อีกหน้าหนึ่งสำหรับ Netscape เป็นต้น
แล้วนำรหัสคำสั่ง JavaScript นี้ไปใส่ไว้ในหน้า index.html เพื่อทำการตรวจสอบบราวเซอร์ โปรแกรมจะทำการตรวจสอบ แล้วแสดงผลหน้าเว็บตามค่าบราวเซอร์นั้นๆ ต่อไป
<SCRIPT LANGUAGE="JavaScript">
var name = navigator.appName
if (name == "Microsoft Internet Explorer")
url=("ระบุชื่อไฟล์ .html ที่สร้างสำหรับ IE");
else
url=("ระบุชื่อไฟล์ .html ที่สร้างสำหรับ Netscape")
</SCRIPT>
สร้าง Background แบบแปลกๆ
อยากให้หน้าเว็บมี BG ที่เปลี่ยนสีได้ตลอดเวลา ลองดูชุดคำสั่งนี้ดูสิครับ
ชุดคำสั่งแรก ให้ใส่ไว้ในส่วน Head Sectoin
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var pos = 10;
function initArray() {
this.length = initArray.arguments.length;
for (var i = 0; i < this.length; i++) {
this[i] = initArray.arguments[i];
}
}
var col=new initArray("4b","5b","8b","8b");
function stop() {
document.bgColor = '#FFFFFF';
clearTimeout(loopID);
}
function start() {
col[1]="red"
col[2]="yellowgreen"
col[3]="yellow"
col[4]="whitesmoke"
col[5]="white"
col[6]="wheat"
col[7]="violet"
col[8]="turquoise"
col[9]="tomato"
col[10]="thistle"
pos++;
if (pos<0||pos>10) {
pos = 0;
}
document.bgColor = col[pos];
loopID = setTimeout("start()",50);
}
// End -->
</SCRIPT>
</HEAD>
ชุดคำสั่งที่สอง ใส่ไว้ใน Body Section
<BODY onLoad="start()">
เปลี่ยนรูปร่างของเมาส์
เบื่อรูปร่างของเมาส์ไหมครับ ไม่ยากเลย ลองดูสิครับ
<a href="ไฟล์ลิงก์" style="cursor:hand">ข้อความ</a>

style="cursor:hand"
style="cursor:crosshair"
style="cursor:text"
style="cursor:wait"
style="cursor:e-resize"
style="cursor:help"
style="cursor:move"
ปุ่มควบคุมเดินหน้า ถอยกลับ
หน้าเว็บแบบ Presentation คงอยากได้ปุ่ม Back และ ปุ่ม Next ใช่ไหมครับ ไม่ยากเลย ลองดูรหัสคำสั่งนี้สิครับ
<FORM>
//รหัสสำหรับปุ่ม Back
<INPUT TYPE="button" VALUE=" BACK " onClick="history.go(-1)">
//รหัสสำหรับปุ่ม Next
<INPUT TYPE="button" VALUE="FORWARD" onCLick="history.go(1)">
</FORM>
ปฏิทินแบบที่ 1
อยากได้ปฏิทินแบบนี้ไหมครับ

June 2005
Su M Tu W Th F Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

ลองใช้รหัสนี้ดูสิครับ
<SCRIPT LANGUAGE="JavaScript">
monthnames = new Array(
"January",
"Februrary",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"Decemeber");
var linkcount=0;
function addlink(month, day, href) {
var entry = new Array(3);
entry[0] = month;
entry[1] = day;
entry[2] = href;
this[linkcount++] = entry;
}
Array.prototype.addlink = addlink;
linkdays = new Array();
monthdays = new Array(12);
monthdays[0]=31;
monthdays[1]=28;
monthdays[2]=31;
monthdays[3]=30;
monthdays[4]=31;
monthdays[5]=30;
monthdays[6]=31;
monthdays[7]=31;
monthdays[8]=30;
monthdays[9]=31;
monthdays[10]=30;
monthdays[11]=31;
todayDate=new Date();
thisday=todayDate.getDay();
thismonth=todayDate.getMonth();
thisdate=todayDate.getDate();
thisyear=todayDate.getYear();
thisyear = thisyear % 100;
thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
if (((thisyear % 4 == 0)
&& !(thisyear % 100 == 0))
||(thisyear % 400 == 0)) monthdays[1]++;
startspaces=thisdate;
while (startspaces > 7) startspaces-=7;
startspaces = thisday - startspaces + 1;
if (startspaces < 0) startspaces+=7;
document.write("<table border=2 bgcolor=white ");
document.write("bordercolor=black><font color=black>");
document.write("<tr><td colspan=7><center><strong>"
+ monthnames[thismonth] + " " + thisyear
+ "</strong></center></font></td></tr>");
document.write("<tr>");
document.write("<td align=center>Su</td>");
document.write("<td align=center>M</td>");
document.write("<td align=center>Tu</td>");
document.write("<td align=center>W</td>");
document.write("<td align=center>Th</td>");
document.write("<td align=center>F</td>");
document.write("<td align=center>Sa</td>");
document.write("</tr>");
document.write("<tr>");
for (s=0;s<startspaces;s++) {
document.write("<td> </td>");
}
count=1;
while (count <= monthdays[thismonth]) {
for (b = startspaces;b<7;b++) {
linktrue=false;
document.write("<td>");
for (c=0;c<linkdays.length;c++) {
if (linkdays[c] != null) {
if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) {
document.write("<a href=\"" + linkdays[c][2] + "\">");
linktrue=true;
}
}
}
if (count==thisdate) {
document.write("<font color='FF0000'><strong>");
}
if (count <= monthdays[thismonth]) {
document.write(count);
}
else {
document.write(" ");
}
if (count==thisdate) {
document.write("</strong></font>");
}
if (linktrue)
document.write("</a>");
document.write("</td>");
count++;
}
document.write("</tr>");
document.write("<tr>");
startspaces=0;
}
document.write("</table></p>");
// End -->
</SCRIPT>



ปฏิทินแบบที่ 1 ปรับเป็นภาษาไทย
อยากได้ปฏิทินแบบนี้ไหมครับ

มิถุนายน 2005
อา พฤ
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

ลองใช้รหัสนี้ดูสิครับ
<script language="JavaScript">
monthnames = new Array(
"มกราคม",
"กุมภาพันธ์",
"มีนาคม",
"เมษายน",
"พฤษภาคม",
"มิถุนายน",
"กรกฎาคม",
"สิงหาคม",
"กันยายน",
"ตุลาคม",
"พฤศจิกายน",
"ธันวาคม");
var linkcount=0;
function addlink(month, day, href) {
var entry = new Array(3);
entry[0] = month;
entry[1] = day;
entry[2] = href;
this[linkcount++] = entry;
}
Array.prototype.addlink = addlink;
linkdays = new Array();
monthdays = new Array(12);
monthdays[0]=31;
monthdays[1]=28;
monthdays[2]=31;
monthdays[3]=30;
monthdays[4]=31;
monthdays[5]=30;
monthdays[6]=31;
monthdays[7]=31;
monthdays[8]=30;
monthdays[9]=31;
monthdays[10]=30;
monthdays[11]=31;
todayDate=new Date();
thisday=todayDate.getDay();
thismonth=todayDate.getMonth();
thisdate=todayDate.getDate();
thisyear=todayDate.getYear();
thisyear = thisyear % 100;
thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
if (((thisyear % 4 == 0)
&& !(thisyear % 100 == 0))
||(thisyear % 400 == 0)) monthdays[1]++;
startspaces=thisdate;
while (startspaces > 7) startspaces-=7;
startspaces = thisday - startspaces + 1;
if (startspaces < 0) startspaces+=7;
document.write("<table border=2 bgcolor=white ");
document.write("bordercolor=black><font color=black>");
document.write("<tr><td colspan=7><center><strong>"
+ monthnames[thismonth] + " " + thisyear
+ "</strong></center></font></td></tr>");
document.write("<tr>");
document.write("<td align=center>อา</td>");
document.write("<td align=center>จ</td>");
document.write("<td align=center>อ</td>");
document.write("<td align=center>พ</td>");
document.write("<td align=center>พฤ</td>");
document.write("<td align=center>ศ</td>");
document.write("<td align=center>ส</td>");
document.write("</tr>");
document.write("<tr>");
for (s=0;s<startspaces;s++) {
document.write("<td> </td>");
}
count=1;
while (count <= monthdays[thismonth]) {
for (b = startspaces;b<7;b++) {
linktrue=false;
document.write("<td>");
for (c=0;c<linkdays.length;c++) {
if (linkdays[c] != null) {
if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) {
document.write("<a href=\"" + linkdays[c][2] + "\">");
linktrue=true;
}
}
}
if (count==thisdate) {
document.write("<font color='FF0000'><strong>");
}
if (count <= monthdays[thismonth]) {
document.write(count);
}
else {
document.write(" ");
}
if (count==thisdate) {
document.write("</strong></font>");
}
if (linktrue)
document.write("</a>");
document.write("</td>");
count++;
}
document.write("</tr>");
document.write("<tr>");
startspaces=0;
}
document.write("</table></p>");
// End -->
</script>
ตัวเลขแบบสุ่ม
การสุ่มตัวเลข ก็เป็นฟังก์ชันมาตรฐานที่มักมีการนำไปประยุกต์ใช้กันหลายรูปแบบ แล้วคุณจะรู้ว่าตัวเลขของคุณของค่าเท่าใด
ขั้นตอนที่ 1 สร้างรหัส JavaScript ไว้ใน Head Section
<SCRIPT language="JavaScript"><!--
var maxNumber = 1000;
var randomNumber = Math.round(maxNumber * Math.random());
//--></SCRIPT>
ขั้นตอนที่ 2 สร้างรหัส JavaScript สำหรับการแสดงผลไว้ใน Body Section
ตัวเลขของคุณคือ
<SCRIPT language="JavaScript"><!---->
document.write(randomNumber);
//--></SCRIPT>
รายการสีแดง คุณสามารถปรับเปลี่ยนได้อิสระ

แสดงผลหน้าเว็บแบบ Fade สี
สร้างรหัส JavaScript ไว้ใน Head Section
SCRIPT LANGUAGE="JavaScript">
<!--
hexa = new Array(16);
for(var i = 0; i < 10; i++) hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";
function hex(i) {
if (i < 0) return "00";
else if (i > 255) return "ff";
else return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}
function setbgColor(r, g, b) {
var hr = hex(r); var hg = hex(g); var hb = hex(b);
if (document.body) document.body.style.backgroundColor="#"+hr+hg+hb;
else document.bgColor = "#"+hr+hg+hb;
}
var sr,sg,sb,er,eg,eb,step,at;
function setBg() {
setbgColor(
Math.floor(sr * ((step-at)/step) + er * (at/step)),
Math.floor(sg * ((step-at)/step) + eg * (at/step)),
Math.floor(sb * ((step-at)/step) + eb * (at/step)));
at++;
if (at<=step) setTimeout("setBg()",5);
}
function fade(a,b,c,d,e,f,g) {
sr=a;sg=b;sb=c;er=d;eg=e;eb=f;step=g;at=1;
setBg();
}
function swtStart() {fade(ค่าสี R1,ค่าสี G1, ค่าสี B1, ค่าสี R2, ค่าสี G2, ค่าสี B2, ตัวเลขความหน่วง);}
window.onload=swtStart;
// -->
</SCRIPT>
ค่าสีและความหน่วงที่ต้องกำหนดเอง เช่น fade(0,0,0,255,255,255,100);
ข้อความเลื่อนใน Status Bar
สร้างรหัส JavaScript ไว้ใน Head Section
<SCRIPT language="JavaScript">
<!-- hide javascript
function scrollmessage(count) {
var m1 = "ข้อความ 1";
var m2 = "...ข้อความ 2";
var m3 = "...ข้อความ 3";
var m4 = "...ข้อความ 4";
var msg=m1+m2+m3+m4;
var out = " ";
var c = 1;
if (count > 100) {
count--;
cmd="scrollmessage("+seed+")";
timerTwo=window.setTimeout(cmd,100);
}
else if (count <= 100 && count > 0) {
for (c=0 ; c < count ; c++) {
out+=" ";
}
out+=msg;
count--;
window.status=out;
cmd="scrollmessage("+count+")";
timerTwo=window.setTimeout(cmd,100);
}
else if (count <= 0) {
if (-count < msg.length) {
out+=msg.substring(-count,msg.length);
count--;
window.status=out;
cmd="scrollmessage("+count+")";
timerTwo=window.setTimeout(cmd,100);
}
else {
window.status=" ";
timerTwo=window.setTimeout("scrollmessage(100)",75);
}
}
}
// done hiding -->
</SCRIPT>
จากนั้นเพิ่ม Attribute ให้กับ Body Tag ดังนี้
<BODY onLoad="scrollmessage(100)">
รายการสีแดง คือรายการที่ปรับเปลี่ยนได้
อ้างอิงที่
http://www.nectec.or.th/courseware/index.html
http://www.nectec.or.th/courseware/internet/javascipt/index.html

คุณค่าอาหารล้น-ต้านชรา กับ10 เมนูสุขภาพ..?

ขึ้นชื่อว่า เมนูสุขภาพ ใครๆก็คงต้องอ่านและสนใจกัน วันนี้เราจะมาแนะนำเมนูสุขภาพ สไตล์อายุรวัฒน์ มาฝากกันค่ะ แน่นอนว่าอ่านไม่ผิดกันค่ะ เพราะ10 เมนูที่เราจะแนะนำต่อไปนี้ ต้านชรากันเลยทีเดียว ใครที่ไม่อยากแก่เร็ว ต้องอ่าน และทานกันค่ะ เราไปดูกันเลยว่ามีอะไรบ้าง



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


2.แกงเขียวหวานไก่
ในน้ำแกงเขียวหวานนั้นเป็นอาหารที่อุดมไปด้วย วิตามินA,D,E,K  ที่ละลายอยู่ในกระทิ
ส่วนในเนื้อไก่ก็มีวิตามินบีมีส่วนที่บำรุงสมองอีกทั้งในพริก ที่ใส่เป็นเครื่องแกงก็มี กรดแคปไซซิน กับ เบต้าแคโรทีน ที่ช่วยบำรุงสายตาอีกด้วย


3.เมี่ยงปลาทู
เพราะเมนูนี้หยิบโน่นนี่ หยิบกินง่ายๆ ได้ทั้ง ซัลโฟราเฟน เป็นกลุ่มสารต้านมะเร็ง จากใบคะน้าห่อเมี่ยง แถมหั่น มะเขือเทศราชินี ใส่เข้าไปช่วยให้ผิวพรรณสวย
ส่วนในเนื้อปลาทูทอดมีทั้งกรดไขมันดีและ แอสตาแซนทินที่กินเข้ากันดีค่ะ


4.ผัดไทย
มีทั้งถั่วงอก อุดมไปด้วยวิตามินC นอกนั้นถั่วและเต้าหู้ยังอุดมไปด้วยวิตามินE แคลเซียม และสาร พฤกษฮอร์โมน ที่เป็นไฟโตเอสโตรเจนป้องกันมะเร็งและลดไขมัน


5.ข้าวหอมนิล
อุดมไปด้วยสาร พฤกษเคมี มีพลังมากกว่าวิตามินE+C รวมกัน


6.ข้าวตอกน้ำกะทิ
มีคุณค่าทางอายุรวัฒน์มากเลยทีเดียว
เริ่มตั้งแต่ตัวของข้าวตอกเองที่มี เส้นใย ช่วยในเรื่องไขมันและน้ำตาลได้ ส่วนวิตามินข้างในเป็นแอนตี้ออกซิแดนต์




7.ข้าวต้มมัดหรือข้าวเหนียวปิ้งใส่ไส้
เมนูนี้ได้วิตามินทั้งA,B,C ส่วนในกล้วยยังมีเส้นใยกับ สารกลุ่มฟีนอล กรดเอลลาจิก ช่วยต้านมะเร็งและเนื้องอกได้ด้วย


8.ข้าวเหนียวดำน้ำกระทิ
ใส่เผือก ลำใย ลูกเดือย และธัญพืชอื่นๆ เป็นแหล่งรวมไฟเบอร์ชั้นสูงเพราะช่วยขัดล้างตั้งแต่หลอดอาหาร ลงมาถึงลำไส้ใหญ่
ส่วนตัวข้าวเหนียวเองนั้นมีวิตามินอี และ ธาตุเหล็ก สูงมาก


9.ข้าวโพดม่วง
มีทั้งวิตามินบำรุงตาอย่าง ลูทีนกับ ซีแซนทิน


10.น้ำสมุนไพร
เช่น น้ำอัญชัน กระเจี๊ยบ น้ำย่านาง น้ำใบบัวบก เป็นน้ำวิตามินชั้นดี
เริ่มกันที่น้ำอัญชัน มีวิตามินสีม่วงที่ช่วยปกป้องผิวและบำรุงตับ
ส่วนน้ำกระเจี๊ยบมีวิตามินซีและเอช่วยบำรุงไต
น้ำใบย่านางกับใบบัวบก ประกอบด้วย คลอโรฟิลล์ และยัังมีกลูต้าไทโอน ที่เป็นสารต่อต้านอนุมูลอิสระอีกด้วย

ที่มา : http://www.widemagazine.com/9309 สร้างรายได้ให้มั่นคงและยั่งยืน - เพิ่มรายได้จากธุรกิจออนไลน์ ใครๆก็ทำได้ ไม่จำกัดความรู้

เมื่อ “Gel Matrix” นวัตกรรมอาหารที่ NASA ยอมรับ...กลายเป็นอาหารผิวที่กินได้ในชีวิตประจำวัน



เคยสงสัยกันมั้ย? เมื่อต้องอยู่บนยานอวกาศในสภาวะไร้น้ำหนัก นักบินอวกาศเค้ากินอาหารกันอย่างไร และอาหารที่เค้ากินนั้นจะเหมือนของคนปกติบนพื้นโลกหรือเปล่า วันนี้เราจะพาคุณไปรู้จักกับGel Matrix นวัตกรรมอาหารสุดล้ำที่จริงๆแล้ว คุณสามารถพบได้ใกล้ๆตัว
 คือนวัตกรรมการผลิตอาหารในรูปแบบของเจล ที่สารอาหารต่างๆ จะถูกนำมาแปรสภาพในรูปแบบของ Gel Matrix นั่นก็คือจะทำให้สารอาหารนั้นๆ มีขนาดโมเลกุลที่เล็กมาก และมีความเข้มข้นสูง จึงทำให้สารอาหารสามารถแพร่กระจายสู่เซลล์และถูกดูดซึมเข้าสู่ร่างกายได้อย่างง่ายดาย ด้วยลักษณะที่เป็นเจลนี่เอง จึงทำให้
 สามารถคงคุณค่าของสารอาหารไว้ได้นาน อีกทั้งยังสะดวกต่อการรับประทาน รวมถึงทำให้นักบินอวกาศได้รับสารอาหารตามที่ร่างกายต้องการได้อย่างครบถ้วนด้วย
จะเป็นอย่างไรเมื่ออาหารของนักบินอวกาศกลายเป็นอาหารที่ใครๆก็กินได้
ไม่ได้เป็นเพียงอาหารสำหรับนักบินอวกาศแล้วเท่านั้น แต่ในด้านความสวยความงามก็ได้นำนวัตกรรมนี้ มาใช้พัฒนาในการผลิตผลิตภัณฑ์อาหารเสริม จนเกิดเป็นอาหารผิวที่มีชื่อว่า Levif
อาหารผิวในรูปแบบเจลลี่ที่มีส่วนผสมของคอลลาเจนไตรเปปไทด์ HACP ,Coenzyme Q10 ,Acerola Cherry ,Pine Bark ,Zinc ,Pomegranate ที่จะช่วยให้ผิวดูขาว และชุ่มชื้นขึ้น อีกทั้งยังช่วยให้ผดผื่น สิว ริ้วรอย รวมถึงจุดด่างดำ และฝ้ากระจางลงได้ เรียกได้ว่าเป็นอาหารผิวรูปแบบใหม่ ที่สามารถทานได้ง่าย และรสชาติดีอีกด้วย
ในปัจจุบันอาหารเสริมด้านความสวยความงามมักจะมาในรูปแบบเม็ด, ผง หรือ แคปซูล ซึ่งความจริงแล้วในด้านผลการทดสอบของ Mayo Clinic ที่ Rocheser รัฐ Minnesota นั้นพบว่า อาหารเสริมรูปแบบเจลสามารถดูดซึมสารอาหารได้ดีกว่าแบบแคปซูลถึง 5 เท่า และสามารถดูดซึมสารอาหารเข้าสู่ร่างกายได้เกือบ 100 เปอร์เซ็นต์เลยทีเดียว
 เมื่อนำมาพัฒนาเป็นอาหารเสริมในด้านความสวยความงาม นอกจากจะทำให้ร่างกายดูดซึมสารอาหารไปใช้ได้เกือบ 100% เต็มแล้ว ยังเป็นการช่วยเก็บรักษาสารอาหารต่างๆ ให้คงประสิทธิภาพได้นานยิ่งขึ้นอีกด้วย
ที่มา : http://www.posttoday.com/life/health/389262

ร้านกุญแจ - ช่างกุญแจภูเก็ตร้านรับทำรีโมทเปิดรถชิพบ้านตู้เซฟ
Friday, 25 September 2015

บทความแนะนำเรื่อง CSS

บทความแนะนำเรื่อง CSS
เริ่มต้นด้วย HTML + CSS
ขั้นที่ 1: การเขียน HTML

สำหรับบทความแนะนำนี้ ขอแนะนำให้ใช้เครื่องมือที่ใช้ง่ายที่สุดเช่น Notepad (สำหรับ Windows) TextEdit (สำหรับ Mac) หรือ KEdit (สำหรับ KDE) เมื่อคุณเข้าใจหลักการแล้วคุณอาจสามารถเปลี่ยนมาใช้เครื่องมือขั้นสูงกว่าได้หรือใช้โปรแกรมที่นิยมใช้กันทั่วไปเช่น Style Master Dreamweaver หรือ GoLive
อย่าใช้โปรแกรมเขียนเช่น Microsoft Word หรือ OpenOffice เนื่องจากโปรแกรมเหล่านี้จะสร้างไฟล์ที่ เวบบราวเซอร์ไม่สามารถอ่านได้ สำหรับ HTML และ CSS นั้นเราต้องการไฟล์ข้อความที่มีความเรียบง่าย
ขั้นแรกก็คือให้เปิดโปรแกรมสร้างข้อความ (Notepad, TextEdit, KEdit, หรืออะไรก็ตามที่คุณชอบใช้) เริ่มจากหน้าที่ว่างและพิมพ์ ข้อความต่อไปนี้ลงไป
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
</head>

<body>

<!-- Site navigation menu -->
<ul class="navbar">
  <li><a href="index.html">Home page</a>
  <li><a href="musings.html">Musings</a>
  <li><a href="town.html">My town</a>
  <li><a href="links.html">Links</a>
</ul>

<!-- Main content -->
<h1>My first styled page</h1>

<p>Welcome to my styled page!

<p>It lacks images, but at least it has style.
And it has links, even if they don't go
anywhere&hellip;

<p>There should be more here, but I don't know
what yet.

<!-- Sign and date the page, it's only polite! -->
<address>Made 5 April 2004<br>
  by myself.</address>

</body>
</html>

บรรทัดแรกของไฟล์ HTML ข้างต้นเป็นการบอกบราวเซอร์ว่าเป็น HTML ประเภทใด (DOCTYPE หมายถึง DOCument TYPE) ในกรณี นี้คือ HTML version 4.01
คำที่อยู่ภายใน < และ > เรียกว่า tags ดังที่คุณได้เห็นว่า เอกสารจะอยู่ภายใน <html> และ </html> tags ระหว่าง <head>และ </head> จะมีข้อมูลหลายรูปแบบที่ไม่แสดงผลบนหน้าจอ ส่วนใหญ่แล้วจะประกอบไปด้วย title ของเอกสารแต่ภายหลังเราจะเพิ่ม CSS style sheet ลงไปในส่วนนี้เช่นกัน
ส่วน <body>นั้นจะเป็นส่วนที่วางข้อความจริงๆในเอกสาร ตามหลักการแล้วทุกอย่างที่อยู่ใน body tag จะถูกแสดงบนบราวเซอร์ยกเว้น ข้อความที่อยู่ระหว่าง<!-- และ --> ซึ่งไว้ใช้ใส่คอมเมนต์สำหรับเราเอง ซึ่งบราวเซอร์จะไม่อ่านค่าดังกล่าว
จาก tag ในตัวอย่าง <ul>จะใช้สำหรับ "รายการที่ไม่ได้เรียงตามลำดับ" เป็นรายการที่ไม่ได้เรียงตามหมายเลข tag <li>จะเป็นตัว เริ่มต้นสำหรับสิ่งที่อยู่ในรายการ tag <p> ใช้สำหรับ "ย่อหน้า" และ tag <a>ใช้สำหรับ “Anchor” ซึ่งไว้ใช้ในการลิงค์
ถ้าคุณอยากจะรู้ว่าชื่อที่อยู่ใน <…>มีความหมายว่าอะไร ที่ๆเหมาะสำหรับการเริ่มต้นอ่านคือ Getting started with HTML (เริ่มต้นด้วย HTML) แต่ไม่ได้กล่าวถึง โครงสร้างของหน้า HTML มากนัก
tag "ul" ใช้แสดงรายการที่เป็น link ต่อรายการหนึ่งซึ่งในที่นี้ก็คือ "เมนู navigation ของเวบไซด์" โดยใช้ลิงค์ไปยังหน้าอื่นๆภายในเวบไซด์ สมมติว่าทุกหน้าของเวบไซด์มีเมนูเหมือนกันหมด
element "h1" และ "p" ทำให้เกิดเนื้อหาที่มีลักษณะเด่นภายในหน้านี้ ในขณะที่ ลายเซ็นต์ในส่วนท้าย ("address") จะเหมือนกันในทุกๆหน้า ของเวบไซด์
ข้อสังเกตก็คือไม่ได้มีการปิด tag ของ element “li” และ “p” ใน HTML (แต่ไม่ใช่ใน XHTML) สามารถละ tag ปิด </li> และ </p> ได้ ซึ่งในที่นี้ได้ละไว้เพื่อให้ง่ายต่อการอ่าน แต่คุณอาจจะใส่ tag ปิดก็ได้ถ้าคุณต้องการ
ขั้นที่2: การใส่สีเพิ่มเติม

คุณอาจจะเห็นว่ามีข้อความสีดำอยู่บนพื้นหลังสีขาวแต่ทั้งนี้ก็ขึ้นอยู่กับการอ่านค่าของบราวเซอร์ ดังนั้นวิธีที่ง่ายวิธีหนึ่งที่เราสามารถสร้างสไตล์ ให้กับหน้าเวบได้คือการใส่สี (ให้เปิดบราวเซอร์ทิ้งไว้เพราะเราจะต้องใช้อีกภายหลัง)
เราจะเริ่มต้นจาการใส่ style sheet ที่อยู่ในไฟล์เดียวกันกับ HTML ก่อน ภายหลังเราจะแยกไฟล์ HTML กับ CSS ออกจากกัน การแยกไฟล์ นั้นมีข้อดีเนื่องจากเราสามารถนำ style sheet เดียวกันมาใช้กับไฟล์ HTML ได้หลายไฟล์ได้ง่ายโดยที่เขียน style sheet เพียงแค่ครั้งเดียว แต่สำหรับขั้นตอนนี้ เราจะเก็บทุกอย่างไว้ในไฟล์เดียวกัน
เราต้องใส่ element <style>ในไฟล์ HTML style sheet style sheet จะอยู่ภายใน element นี้ ดังนั้นให้กลับไปยังหน้าต่างในโปรแกรม แก้ไขและเพิ่มบรรทัดต่อไปนี้ 5 บรรทัดในส่วน head ของไฟล์ HTML บรรทัดที่ใส่เพิ่มจะเป็นตัวสีแดง
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <style type="text/css">
  body {
    color: purple;
    background-color: #d8da3d }
  </style>
</head>

<body>
[etc.]
บรรทัดแรกบอกไว้ว่า style sheet ดังกล่าวเขียนขึ้นใน CSS (“text/css”) บรรทัดที่สองบอกว่าเราได้เพิ่ม style ลงไปใน element “body” บรรทัดที่สามเป็นตัวกำหนดสีของข้อความให้เป็นสีม่วงและบรรทัดถัดไปเป็นตัวกำหนดพื้นหลังให้เป็นสีประมาณเหลืองอมเขียว
Style sheets ใน CSS นั้นสร้างขึ้นมาจากกฎ กฏแต่ละกฏประกอบไปด้วยสามส่วนดังนี้
selector (จากตัวอย่างคือ “body”) ซึ่งเป็นตัวบอกบราวเซอร์ว่าส่วนใดของเอกสารที่มีการนำกฏมาใช้
property (จากตัวอย่างคือ 'color' และ 'background-color' ซึ่งเป็น property ทั้งสองตัว) ซึ่งเป็นตัวบอกว่าเราจะกำหนด layout ในรูปแบบไหน
และ value ('purple' and '#d8da3d')ซึ่งเป็นตัวบอกค่า value ของ style property
ตัวอย่างข้างล่างนี้แสดงให้เห็นการรวมกันของกฏ เราได้กำหนด property ไว้สองตัวดังนั้นเราจึงได้แยกกฏออกมาเป็น 2 กฏดังนี้
body { color: purple }
body { background-color: #d8da3d }
แต่เนื่องจากกฎทั้งสองใช้กับ body ทั้งคู่ดังนั้นเราจะเขียน “body” แค่เพียงครั้งเดียวเท่านั้นและใส่ propert และ value ไว้ด้วยกัน สำหรับเรื่องเกี่ยวกับ selector ให้อ่านเพิ่มได้ในบทที่2 ของ Lie & Bos.
นอกจากนี้พื้นหลังของ element body ยังเป็นพื้นหลังของเอกสารทั้งหมด หากเราไม่ได้กำหนดพื้นหลังที่เฉพาะให้กับ element อื่นๆ เช่น (p, li, address…) ตามค่า default แล้วก็จะไม่มีค่าพื้นหลัง (หรืออาจจะเป็นแบบโปร่งแสง) ค่า property 'color' จะเป็นตัวกำหนด สีของข้อความสำหรับ element body แต่สำหรับ element อื่นๆที่อยู่ภายใน body จะมีสีตามค่า body เช่นกันยกเว้นว่าจะมีการกำหนด ค่าไว้ต่างหาก (ซึ่งเราจะเพิ่มสีอื่นๆเข้าไปในภายหลัง)
ตอนนี้ให้เซฟไฟล์ดังกล่าวไว้ (โดยใช้คำสั่ง “Save” จากเมนู File) และกลับไปยังหน้าบราวเซอร์หากคุณกดปุ่ม “Reload” หน้าตา ของเวบจะเปลี่ยนไปจากหน้าตาที่ธรรมดาและน่าเบื่อเป็นหน้าที่มีสี (แต่ก็ยังดูค่อนข้างหน้าเบื่อ) นอกจากรายชื่อของลิงค์ด้านบน ตอนนี้ ข้อความควรจะเป็นสีม่วงซึ่งตัดกับสีพื้นหลังคือสีเหลืองอมเขียว
ขั้นที่ 3: การเพิ่มฟอนท์

อีกสิ่งหนึ่งที่สามารถทำได้อย่างง่ายคือการแยกความแตกต่างบางส่วนให้กับฟอนท์ในแต่ละ element ของหน้า ดังนั้นให้ลองกำหนด ข้อความโดยใช้ฟอนท์ “Georgia” ยกเว้น h1 ซึ่งเราจะใช้ฟอนท์ “Helvetica” แทน
เมื่อแสดงบนเวบแล้วเราไม่สามารถมั่นใจได้เลยว่าผู้อ่านจะมีฟอนท์อะไรบ้างในเครื่องคอมพิวเตอร์ของเขาดังนั้นเราควรจะต้องเพิ่มทางเลือก บางอย่างเข้าไปด้วยเช่นกัน ถ้าผู้อ่านไม่มีฟอนท์ Georgia อาจจะใช้ Times New Roman หรือ Times แทนก็ได้และหากไม่มีฟอนท์ ทั้งสองเลยบราวเซอร์จะเลือกฟอนท์ใดๆก็ตามที่อยู่ในตระกูล serifs หากไม่มี Helvetica ก็ใช้ Geneva Arial และ SunSans-Regular ที่มี ลักษณะคล้ายกันแทนแต่หากไม่สามารถใช้ได้เลย บราวเซอร์ก็จะเลือกฟอนท์อื่นที่ไม่ใช่ serif
ในโปรแกรมแก้ไขให้เพิ่มบรรทัดต่อไปนี้เข้าไป
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <style type="text/css">
  body {
    font-family: Georgia, "Times New Roman",
          Times, serif;
    color: purple;
    background-color: #d8da3d }
  h1 {
    font-family: Helvetica, Geneva, Arial,
          SunSans-Regular, sans-serif }
  </style>
</head>

<body>
[etc.]
หากคุณเซฟไฟล์นี้อีกครั้งและกดปุ่ม “Reload” ในบราวเซอร์ ตอนนี้ฟอนท์ที่ปรากฎควรจะมีหน้าตาที่เปลี่ยนไปทั้งในส่วน heading และ ข้อความอื่นๆ
ขั้นที่4: การเพิ่ม NAVIGATION BAR

รายชื่อในส่วนบนของหน้า HTML ตั้งใจจะใช้เป็นเมนู navigation เวบไซด์หลายเวบมีการใช้เมนูวางเรียงไว้ด้านบนหรือไว้ด้านข้างของ หน้าและหน้านี้ก็ควรมีเช่นกันซึ่งเราจะวางไว้ด้านซ้ายเนื่องจากดูแล้วน่าแล้วน่าสนใจกว่าวางไว้ด้านบน
เมนูดังกล่าวนี้มีอยู่ในหน้า HTML แล้วโดยใช้ <ul>แสดงรายการไว้ด้านบนลิงค์ยังไม่สามารถใช้ได้เนื่องเวบไซด์ของเราในขณะนี้มี เพียงหน้าเดียวแต่ในขณะนี้เรื่องนั้นไม่สำคัญ แต่แน่นอนว่าสำหรับเวบไซด์จริงๆแล้วไม่ควรจะมีลิงค์ที่ใช้งานไม่ได้
ดังนั้นเราจะต้องย้ายรายชื่อลงมาอยู่ด้านซ้ายและย้ายข้อความที่เหลือทั้งหมดมาทางด้านขวาเล็กน้อยเพื่อให้มีพื้นที่ CSS property ที่เราใช้คือ 'padding-left' (สำหรับย้ายข้อความในส่วน body) และ 'position' 'left' และ 'top' (เพื่อย้ายเมนู)
ยังมีวิธีอื่นๆที่สามารถทำได้หากคุณดูในส่วน “column” หรือ “layout” ในหน้า Learning CSS (เรียนรู้ CSS)คุณจะเจอเทมเพลตที่ใช้ได้เลยหลายอันแต่ อันนี้ก็ใช้ได้เหมาะสมกับจุดประสงค์ของเรา
ในหน้าโปรแกรมแก้ไข ให้เพิ่มบรรทัดต่อไปนี้เขาไปในไฟล์ HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <style type="text/css">
  body {
    padding-left: 11em;
    font-family: Georgia, "Times New Roman",
          Times, serif;
    color: purple;
    background-color: #d8da3d }
  ul.navbar {
    position: absolute;
    top: 2em;
    left: 1em;
    width: 9em }
  h1 {
    font-family: Helvetica, Geneva, Arial,
          SunSans-Regular, sans-serif }
  </style>
</head>

<body>
[etc.]
หากคุณเซฟไฟล์อีกครั้งและ reload ในบราวเซอร์ทีนี้คุณก็จะได้รายชื่อลิงค์ที่อยู่ทางด้านซ้ายของข้อความหลัก ซึ่งตอนนี้หน้าเวบนี้ก็ ดูน่าสนใจขึ้น
ขั้นที่ 5: การใส่สไตล์ให้กับลิงค์

navigation เมนูนั้นยังดูหน้าตาเหมือนรายการมากกว่าเมนู ดังนั้นเราจะใส่สไตล์เพิ่มเข้าไป เราจะเอาจุด(bullet)ที่ใช้แสดงรายการออกไปก่อน และย้ายรายการแต่ละรายการออกไปทางด้านซ้ายในตำแหน่งเดิมที่ใช้แสดงจุดในแต่ละรายการ นอกจากนั้นเราก็จะใส่พื้นหลังสีขาวและสี่เหลี่ยมสีดำ ให้แต่ละรายการ (ทำไมน่ะหรือ ไม่มีเหตุผลเฉพาะหรอกเพียงแต่ว่าเราสามารถทำได้)
นอกจากนี้เรายังไม่ได้ระบุวว่าสีที่ใช้ลิงค์เป็นสีอะไร ดังนั้นให้เพิ่มลงไปด้วยสีฟ้าใช้สำหรับลิงค์ที่ผู้อ่านยังมองไม่เห็นส่วนสีม่วงใช้สำหรับลิงค์ ที่ผู้อ่านคลิกเข้าไปดูแล้ว
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <style type="text/css">
  body {
    padding-left: 11em;
    font-family: Georgia, "Times New Roman",
          Times, serif;
    color: purple;
    background-color: #d8da3d }
  ul.navbar {
    list-style-type: none;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 2em;
    left: 1em;
    width: 9em }
  h1 {
    font-family: Helvetica, Geneva, Arial,
          SunSans-Regular, sans-serif }
  ul.navbar li {
    background: white;
    margin: 0.5em 0;
    padding: 0.3em;
    border-right: 1em solid black }
  ul.navbar a {
    text-decoration: none }
  a:link {
    color: blue }
  a:visited {
    color: purple }
  </style>
</head>

<body>
[etc.]
เตือน! ล่วงหน้า: โดยทั่วไปแล้ว บราวเซอร์จะแสดงลิงค์ด้วยการขีดเส้นใต้และใส่สี โดยปกติสีที่ใช้จะเหมือนกับสีที่ระบุไว้ในที่นี้ คือ สีฟ้าไว้สำหรับลิงค์ไปยังหน้า ที่คุณยังไม่ได้เข้าไปดู (หรือที่เคยเข้าไปดูเมื่อนานมาแล้ว) สีม่วงไว้ใช้สำหรับหน้าที่เข้าไปดูมาแล้ว
ใน HTML การสร้างลิงค์ทำได้โดยใช้ element <a> ดังนั้นเวลาที่เรระบุสีเราจะต้องใส่สไตล์ให้กับ “a” เพื่อแยกความแตกต่างระหว่างลิงค์ที่เยี่ยม ชมแล้วกับลิงค์ที่ยังไม่ได้เยี่ยมชม CSS ได้กำหนดให้มี “pseudo-classes” (:link และ :visited) ที่เรียกว่า “pseudo-classes” เพื่อแยกแยะความ แตกต่างระหว่าง class attributes, ที่แสดงบน HTML โดยตรงตัวอย่างเช่น class="navbar" ที่แสดงไว้ในตัวอย่างข้างต้น
ขั้นที่6: การเพิ่มเส้นแบ่งในแนวนอน

ส่วนที่เราจะเพิ่มเป็นส่วนสุดท้ายใน style sheet คือการใส่เส้นแบ่งในแนวนอนเพื่อแยกข้อความออกจากส่วนของลายเซ็นต์ในส่วนท้าย เราจะใช้ 'border-top' เพื่อเพิ่มเส้นแบ่งแบบจุดในส่วนบนของ element <address>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <style type="text/css">
  body {
    padding-left: 11em;
    font-family: Georgia, "Times New Roman",
          Times, serif;
    color: purple;
    background-color: #d8da3d }
  ul.navbar {
    list-style-type: none;
    padding: 0;
    margin: 0;
    position: absolute;
    top: 2em;
    left: 1em;
    width: 9em }
  h1 {
    font-family: Helvetica, Geneva, Arial,
          SunSans-Regular, sans-serif }
  ul.navbar li {
    background: white;
    margin: 0.5em 0;
    padding: 0.3em;
    border-right: 1em solid black }
  ul.navbar a {
    text-decoration: none }
  a:link {
    color: blue }
  a:visited {
    color: purple }
  address {
    margin-top: 1em;
    padding-top: 1em;
    border-top: thin dotted }
  </style>
</head>

<body>
[etc.]
ตอนนี้การใส่สไตล์ของเราก็เสร็จสมบูรณ์ต่อไปเราจะมาดูว่าเราจะแยก style sheet ไว้อีกไฟล์ได้อย่างไรเพื่อที่ว่าหน้าอื่นสามารถใช้สไตล์ร่วมกันได้
ขั้นที่ 7: การใส่ STYLE SHEET แยกไฟล์

ตอนนี้เรามีไฟล์ HTML ที่มี style sheet ฝังอยู่แต่หาก เวบไซด์ของเรามีเนื้อหาเพิ่มมากขึ้นเราอาจจะต้องการให้หน้าแต่ละหน้าสามารถใช้สไตล์ร่วม กันได้ ซึ่งมีวิธีที่ดีกว่าการก๊อปปี้ style sheet ลงไปในทุกๆหน้า นั่นก็คือหากเราใส่ style sheet แยกไฟล์ไว้ทุกๆหน้าเวบก็สามารถเรียกสไตล์มาใช้ ได้โดยตรง
ในการสร้างไฟล์สำหรับ style sheet เราต้องสร้างไฟล์ text เปล่าขึ้นมาอีกหนึ่งไฟล์ คุณสามารถทำได้โดยเลือก “New” จากเมนู File ในโปรแกรม แก้ไขเพื่อสร้างหน้าเปล่าขึ้นมาหนึ่งหน้า (ถ้าคุณใช้โปรแกรม TextEdit อย่าลืมว่าต้องแก้ไขให้เป็นข้อความธรรมดาก่อนโดยเลือกได้จากเมนู Format)
หลังจากนั้นให้ตัดและวางทุกส่วนที่อยู่ใน element <style> จากไฟล์ HTML ลงไปยังหน้าใหม่แต่อย่าก๊อปปี้ตัว element <style> และ </style> เอง เพราะเป็นส่วนที่ใช้กับ HTML ไม่ใช่ CSS ในหน้าใหม่ของโปรแกรมแก้ไข ควรจะมี style sheet ที่ครบสมบูรณ์ดังนี้
body {
  padding-left: 11em;
  font-family: Georgia, "Times New Roman",
        Times, serif;
  color: purple;
  background-color: #d8da3d }
ul.navbar {
  list-style-type: none;
  padding: 0;
  margin: 0;
  position: absolute;
  top: 2em;
  left: 1em;
  width: 9em }
h1 {
  font-family: Helvetica, Geneva, Arial,
        SunSans-Regular, sans-serif }
ul.navbar li {
  background: white;
  margin: 0.5em 0;
  padding: 0.3em;
  border-right: 1em solid black }
ul.navbar a {
  text-decoration: none }
a:link {
  color: blue }
a:visited {
  color: purple }
address {
  margin-top: 1em;
  padding-top: 1em;
  border-top: thin dotted }
ให้เลือก “Save As…” จากเมนู File ต้องแน่ใจว่าได้เซฟไว้อยู่ในส่วนหรือแฟ้มเดียวกันกับไฟล์ mypage.html และให้เซฟ style sheet เป็น “mystyle.css”
ตอนนี้ให้กลับไปยังหน้าที่มีโคด HTML ให้เอาทุกอย่างออกเริ่มตั้งแต่ tag <style> จนถึง tag </style> และแทนที่ด้วย element <link> ดังนี้
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>My first styled page</title>
  <link rel="stylesheet" href="mystyle.css">
</head>

<body>
[etc.]
ส่วนนี้จะเป็นส่วนที่บอกบราวเซอร์ว่า style sheet จะอยู่ในไฟล์ที่ชื่อว่า “mystyle.css” และเนื่องจากไม่ได้มีการบอกถึงส่วนที่เก็บไฟล์ บราวเซอร์จะดูจากส่วน ที่เก็บไฟล์เดียวกันกับไฟล์ HTML
หากคุณเซฟไฟล์ HTML และโหลดใหม่ในบราวเซอร์ คุณอาจจะมองไม่เห็นถึงความแตกต่างเพราะหน้าเวบยังคงมีสไตล์เดิมแต่ตอนนี้สไตล์จะมาก จากไฟล์ที่อยู่ข้างนอก
ผลสุดท้ายจากการใส่สไตล์
ผลสุดท้ายที่ได้
ขั้นตอนต่อไปก็คือการวางทั้งไฟล์ mypage.html และ mystyle.css บนเวบไซด์ของคุณ (ซึ่งคุณอาจจะต้องการแก้ไขก่อนเล็กน้อย) แต่ส่วนวิธีการวางอย่างไรนั้นขึ้นอยู่กับผู้ให้บริการอินเตอร์เน็ตของคุณ

ลูกเดือยต้มน้ำตาล เมนูสุขภาพ จัดไป

เมนูสุขภาพจากลูกเดือย

          ลูกเดือย ธัญพืชสรรพคุณอัดแน่นเต็มเม็ดเต็มหน่วย คนรักสุขภาพนั้นต่างนำลูกเดือยมาทำเป็นเมนูสุขภาพง่าย ๆ อย่างลูกเดือยต้มน้ำตาล ขนมหวานยอดฮิต กินแล้วอยู่ท้อง แถมราคาประหยัดในช่วงเศรษฐกิจตกสะเก็ดอีกด้วย

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

 สิ่งที่ต้องเตรียม

           ลูกเดือยแห้ง 100 กรัม
           น้ำเปล่า (กะพอให้ท่วมลูกเดือย)
           ใบเตยมัดเป็นปม 1 ใบ
           น้ำตาลทราย (ความหวานเลือกตามชอบ)

 วิธีทำ

           1. แช่ลูกเดือยในน้ำทิ้งไว้อย่างน้อย 1 คืนจนลูกเดือยเริ่มนิ่มขึ้น แล้วนำมาล้างน้ำให้สะอาด จากนั้นนำไปต้มจนสุกและบานออก ตักขึ้นสะเด็ดน้ำ พักไว้จนเย็น

           2. นำลูกเดือยลงไปต้มกับน้ำอีกครั้ง รอจนเดือดและน้ำเริ่มเปลี่ยนสี ใส่น้ำตาลทรายลงไปปริมาณตามชอบ คนผสมจนน้ำตาลทรายละลายและเดือดอีกครั้ง ยกลงจากเตา ตักใส่ถ้วย พร้อมเสิร์ฟ


Wednesday, 23 September 2015

ทองแท้ ! 15 นักเตะที่เคย “โดนดูถูก” แต่กลับกลายมาเป็น ดาวดังได้ในเวลาต่อมา


15. คาร์ลอส ดุงก้า


Cannes - Sagatiba 'Pure Spirit of Brasil'
ในอดีต ดุงก้า เป็นผู้เล่นที่ถูกสื่อต่าง ๆ วิจารณ์อย่างหนักว่าเขานั้นไม่ได้มีฝีเท้าดีพอที่จะติดทีมชาติบราซิลเลยด้วยซ้ำ

แต่แล้วด้วยความมุ่งมั่นตั้งใจจะพัฒนาตัวเอง ทำให้เขาก้าวขึ้นมาเป็นกัปตันของ เซเลเซา และพาทีมคว้าแชมป์ฟุตบอลโลก 1994 ได้อย่างยิ่งใหญ่ หลังจากห่างหายไปนานถึง 24 ปี
14. ​ไอลตัน


Stuttgart v Bremen
สตาร์ชาวบราซิลคนนี้ แจ้งเกิดได้อย่างเต็มตัวในศึกบุนเดสลีกากับทีมอย่าง เวรเดอร์ เบรเมน ทั้งที่ก่อนหน้านั้นเขาถูกมองว่าจะล้มเหลวในอาชีพนักฟุตบอล เพราะมีร่างกายที่อ้วนเกินไป

แต่หากใครได้เห็นลีลาของเขาแล้วล่ะก็พูดได้คำเดียวว่า “นี่มันอ้วนพริ้วชัด ๆ”
13. ​โธมัส เฮลเวก


Thomas Helveg
เฮลเวก เคยค้าแข้งอยู่กับ อูดิเนเซ ที่มี อัลแบร์โต ซัคเคโรนี เป็นกุนซือ และจากนั้นเขาก็ย้ายตามนายเก่ามาอยู่ที่ มิลาน ในปี 1998 พร้อมกับคำครหาว่าเป็นเด็กเส้น

แต่สุดท้ายแล้ว เขาก็พิสูจน์ว่าตัวเองนั้นมีดีพอและช่วยทีมปีศาจแดงดำคว้าได้ทั้งแชมป์ลีกในปี 1999 รวมถึงดับเบิ้ลแชมป์ในปี 2003 (โคปปา อิตาเลีย และ ยูฟา แชมเปียนส์ลีก)
12. ​เลส เฟอร์ดินาน


Alan Shearer and Les Ferdinand
อดีตกองหน้าทีมชาติอังกฤษคนนี้ เริ่มค้าแข้งมากับทีมอย่าง ควีนสปาร์ค เรนเจอร์ส แต่เขาต้องใช้เวลานานถึง 6 ฤดูกาลกว่าจะคลำหาประตูแรกของตัวเองเจอ ซึ่งระหว่างนั้นก็โดนดูถูกต่าง ๆ นานาว่าไม่เก่งพอที่จะเล่นในลีกสูงสุดเลยแม้แต่น้อย

อย่างไรก็ตาม ทันทีที่ฟุตบอลอังกฤษ เปลี่ยนชื่อ ดิวิชั่น 1 เป็น พรีเมียร์ลีก แล้ว ฟอร์มของ เฟอร์ดินานด์ ก็ดูเหมือนจะพลิกผันตามไปด้วย เพราะหลังจากนั้นเขาก็ซัลโวประตูได้เป็นกอบเป็นกำจนกระทั่งได้ไปเป็นคู่หูของ เชียร์เรอร์ ทั้งในทีมชาติอังกฤษ และนิวคาสเซิล
11. ​เดมบ้า บา


Chelsea v Stoke City - FA Cup Fourth Round
สไตรเกอร์ทีมชาติเซเนกัลอย่าง บา เคยต้องตกระกำลำบากมาก่อนในช่วงที่เขาพยายามจะหาทางมาเล่นฟุตบอลในยุโรปใหม่ ๆ เพราะต้องตระเวณทดสอบฝีเท้าไปเรื่อย ๆ ทั้งที่ตัวเองไม่ค่อยจะเหลือเงินทองไว้ประทังชีวิต

บา ต้องทนทุกข์อยู่กับการถูกปฏิเสธมาอย่างยาวนาน จนในที่สุดเขาก็ได้เล่นฟุตบอลในยุโรปสมใจก่อนจะย้ายมาโด่งดังกับ เชลซี ซึ่งพลิกชีวิตเขาได้ในที่สุด
10. ​พอล แลมเบิร์ต


FUSSBALL: 1. BUNDESLIGA 97/98 BORUSSIA DORTMUND 04.10.97
ในปี 1997 สมัยที่ แลมเบิร์ต ยังเล่นให้กับดอร์ทมุนด์อยู่นั้น ทีมของเขาสามารถทะลุเข้าสู่รอบชิงชนะเลิศ ยูฟา แชมเปียนส์ลีกได้สำเร็จ โดยมีคู่แข่งสุดท้ายคือ ยูเวนตุส

แลมเบิร์ต เป็นมิดฟิลด์ตัวรับที่จะต้องดวลกับ ซีดาน โดยตรง ซึ่งแน่นอนว่าเขาโดนคำครหาโจมตีว่ากระจอกเกินไปจะเอาสตาร์ม้าลายอยู่

แต่สุดท้าย อดีตกุนซือแอสตัน วิลลา คนนี้แหละที่จัดการเก็บเอาเจ้าชิซูแพ็คใส่กระเป๋าจนหายไปแทบตลอดทั้งเกม พร้อมกับจบลงด้วยชัยชนะของ ดอร์ทมุนด์ ด้วยสกอร์ถึง 3-1 เลยทีเดียว
9. ​ซามูเอล เอโต้



Fussball: Confederations Cup 2003
หลายคนอาจจะไม่รู้ว่า เอโต้ ที่โด่งดังสุด ๆ สมัยอยู่กับ บาร์เซโลนา นั้นเคยเป็นเด็กปั้นในทีมเยาวชนของ เรอัล มาดริด มาก่อน

แต่ด้วยความที่ทีมชุดขาวมองว่าเขาเป็นกองหน้าดาด ๆ ที่ไม่มีจุดเด่นอะไรจึงปล่อยทิ้งไป ซึ่งอย่างที่รู้กันดีคือสไตรเกอร์ชาวแคเมอรูน คนนี้ กลายมาเป็นดาวยิงโคตรอันตรายที่กองหลังทั่วโลกหวาดผวาได้ในท้ายที่สุด
8. ​ร็อบบี คีน


Robbie Keane
คีน เป็นนักฟุตบอลที่โด่งดังมาตั้งแต่อายุยังน้อย โดยเขาเคยสร้างชื่อมากับทั้งทีมอย่าง วูล์ฟแฮมตัน และ โคเวนทรี

อย่างไรก็ตาม เซอร์ อเล็กซ์ เฟอร์กูสัน ก็เคยบอกเอาไว้ว่าจอมรัวปืนกลคนนี้ไม่เก่งพอที่จะเข้ามาเป็นผู้เล่นของยอดทีมอย่าง แมนเชสเตอร์ ยูไนเต็ด ทำให้เขาย้ายไปเล่นที่ อินเตอร์ มิลาน และกลับมาดังเปรี้ยงปร้างอีกครั้งในอังกฤษกับทีมอย่าง ท็อตแนม ฮอตสเปอร์ส
7. ​เดวิด เบ็คแฮม


David Beckham
ในช่วงกลางของยุค 90 เกล็น ฮอดเดิล ตำนานทีมชาติอังกฤษ ได้เคยบอกเอาไว้ว่า ดาร์เรน แอนเดอร์ตัน จะเป็นผู้เล่นในตำแหน่งปีกขวาที่ดีที่สุดของ อังกฤษ ไปอีกยาวนานหลายปี พร้อมกับบอกอีกว่า เดวิด เบ็คแฮม จะต้องตกอยู่ภายใต้เงาของ ปีกกระดูกยุง จากสเปอร์ส คนนี้

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


St. Patrick's Athletic v Tottenham Hotspur
“เจ้าเห้งเจีย” ตัดสินใจย้ายตัวเองออกจากถิ่นนักบุญมาอยู่กับ สเปอร์ส เมื่อปี 2007 พร้อม ๆ กับคำพูดดูถูกว่าเป็นนักเตะที่ไม่เก่งจริง และไม่คุ้มกับค่าตัว 5 ล้านปอนด์ด้วยซ้ำ เพราะในช่วง 10 เกมแรกเขาหลุดฟอร์มจนน่าเขกกะโหลกจริง ๆ

แต่หลังจากที่ เบล ค้นพบเส้นทางของตัวเองแล้ว เขาก็พัฒนาฝีเท้าขึ้นมาจนกลายเป็นตัวหลักของทีมได้สำเร็จ และย้ายไปอยู่กับ เรอัล มาดริด ด้วยค่าตัวที่เป็นสถิติโลก 85.3 ล้านปอนด์เลยทีเดียว
5. ​แฟรงค์ แลมพาร์ด


Frank Lampard
อดีตมิดฟิลด์ดาวรุ่งของทีมขุนค้อน เวสต์แฮม คนนี้ ย้ายมาอยู่กับ เชลซี เมื่อปี 2001 ซึ่งเขาถูกวิจารณ์อย่างเสีย ๆ หาย ๆ ตั้งแต่ยังไม่ทันได้ลงเล่นให้ทีมใหม่เลยด้วยซ้ำว่าทำไมทีมต้องยอมจ่ายเงินเพื่อซื้อนักเตะที่มีดีแค่เคาะบอลคืนหลังมาเข้าทีม

แต่หลังจากนั้นไม่นาน เจ้าหมีพูห์ ก็พิสูจน์ตัวเองว่าเขานั้นดีพอที่จะก้าวขึ้นมาอยู่ในระดับท็อปของพรีเมียร์ลีก และเล่นให้ทีมมายาวนานถึง 13 ปี จนกลายเป็นหนึ่งตำนานของสโมสรได้ในที่สุด
4. ​ดิดิเยร์ เดชองส์



Didier Deschamps
ไม่ว่าอดีตมิดฟิลด์ทีมชาติฝรั่งเศสคนนี้จะเคยสร้างผลงานอันยอดเยี่ยมจนประสบความสำเร็จมาแล้วมากมายกับ ยูเวนตุส ขนาดไหน แต่เขาก็ยังโดนดูถูกจากรุ่นพี่คนชาติเดียวกันอย่าง เอริค คันโตนา อยู่ดี

ก็องโต เคยบอกว่า เดชองส์ เป็นได้แค่เด็กเก็บบอลของ ซีดาน ในทีมม้าลายเท่านั้น และจะไม่มีวันดีได้มากไปกว่านี้อีกแล้ว แต่อีกไม่กี่ปีต่อมา เขาก็จัดการแหกหน้ารุ่นพี่ด้วยการเป็นกัปตันทีมชาติในชุดแชมป์โลกปี 1998 นั่นเอง
3. ​ฟิลิปโป อินซากี้


FUSSBALL: CHAMPIONS LEAGUE 02/03 BORUSSIA DORTMUND - AC MAILAND ;
เจ้าปิ๊บโป้ เป็นนักเตะอีกหนึ่งคนที่เคยโดนดูถูกเอาไว้ในสมัยเล่นอยู่ในทีม ยูเวนตุส โดยครั้งนี้ เป็นคำพูดของตัวเทพอย่าง ซีเนอดีน ซีดาน ที่กล่าวเอาไว้หลังจากย้ายไป เรอัล มาดริด ในปี 2001

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


FC Schalke 04 v AC Milan
ในช่วงปี 90 นั้น กัตตูโซ ยังเป็นนักเตะเกรดกลาง ๆ ที่ทำผลงานได้ลุ่ม ๆ ดอน ๆ อยู่กับทีมอย่าง เปรูจา, เรนเจอร์ส และ ซาแลนิตานา จนทีมมหาอำนาจของยุคอย่าง ยูเวนตุส เคยบอกเอาไว้ว่าเขาไม่ใช่กองกลางที่มีฝีเท้าดีเด่อะไร

แต่หลังจากนั้น เอซี มิลาน ก็ดึงตัวเขาไปร่วมทีม พร้อมกับให้โอกาสจนเจ้ากั๊ตจังกลายเป็นหนึ่งในสุดยอดมิดฟิลด์ตัวรับที่ดีที่สุดตลอดกาลของโลกไปแล้วตอนนี้
1. ​โคลด มาเกเลเล


Fulham v Chelsea
ฟลอเรนติโน เปเรซ ประธานสโมสร เรอัล มาดริด ได้กล่าวเอาไว้ว่า มาเกเลเล ไม่ใช่นักเตะที่ดีพอจะอยู่ในทีมชุด กลาติกอส ของเขา จึงไม่ยอมขึ้นค่าเหนื่อยให้ตัวนักเตะจนเขาย้ายหนีออกไปอยู่กับ เชลซี

ซึ่งผลลัพธ์ก็เป็นอย่างที่ทราบกันดีคือ มาดริด ยุคนั้นถึงกับเล่นฟุตบอลไม่เป็นทรง ขณะที่ เชลซี ซึ่งมี มาเกเลเล คุมแดนกลาง กลายเป็นโคตรทีมที่จะหาคนมาล้มได้ยากอย่างยิ่งทีเดียว
ที่มา : http://www.90min.com/th/posts/2577755