โค้ดดิ้งโปรแกรม

โค้ดดิ้งไทยแลน

เลือกเนื้อหาบทเรียน

เนื้อหาบทเรียน

มาเขียนโปรแกรมภาษา java กันเถอะ ตอนที่ 4

 

 

 

 

 

 

 

 

{jcomments on}

{loadmoduleid 179}

มาเขียนโปรแกรมภาษาปาสคาลกันเถอะ ตอนที่ 2

 

 

 

 

 

 

{jcomments on}

 

มาเขียนโค้ดภาษาซีกันเถอะ ตอนที่ 1

แบบฝึกเขียนโค้ดโปรแกรม ครั้งที่ 3

แบบฝึก

แบบฝึก

 

แบบฝึก

 

แบบฝึก

 

แบบฝึก

 

แบบฝึก

 

 

 

{jcomments on}

แบบฝึกเขียนโค้ดโปรแกรม ครั้งที่ 2

แบบฝึกหัด

แบบฝึกหัด

 

แบบฝึกหัด

 

แบบฝึกหัด

 

แบบฝึกหัด

 

แบบฝึกหัด

 

 

 

 

{jcomments on}

[powr-social-media-icons id="dd459de7_1579417186937"]

บทเรียนเขียนโฟชาร์ต

มาเขียนผังระบบงาน และ โค้ด Java กันเถอะ ตอนที่ 8

 

 

 

 

 

 

 

 

 

{jcomments on}

{loadmoduleid 179}

ทำให้ดูหน่อย......ท่านสุดยอดรึเปล่า?

 

 

 

 

{jcomments on}

{loadmoduleid 179}

มาเป็นเกษตกรกันนะ....ตอนที่ 1

 

 

 

 

 

 

 

 

 

 

 

{jcomments on}

{loadmoduleid 179}

มาเป็นเกษตกรกันนะ.....ตอนที่ 2

 

 

 

 

 

{jcomments on}

{loadmoduleid 179}

มาเขียนผังงานระบบ และ โค้ด Java กันเถอะ ตอนที่ 7

 

 

 

 

 

 

 

 

{jcomments on}

{loadmoduleid 179}

ต่อบล๊อกเบส ด้วย Debugging With Scrat

Debugging With Scrat ตอนที่ 1

 

บทที่ 10 อธิบายวิธีการเขียนโค้ดจาวาแบบทำซ้ำ

บทที่ 10 การเขียนโปรแกรมแบบทำซ้ำ

บทที่ 10

บทที่ 10

ตัวอย่างที่ 1 //รับข้อมูลส่วนตัวจาก user และแสดงผล

import java.io.*;       //ต้องประกาศ import เมื่อต้องการใช้ class java.io หาค่าเฉลี่ย
public class Introduction        //ชื่อ class จะต้องชื่อเดียวกับ file    
{
  public static void main(String[] args) throws IOException       //method ที่ใช้สำหรับ run program, โยนทิ้งเมื่อมี exeption
    {   
         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));   //ประกาศคำสั่งที่ใช้ในการรับค่า
         System.out.println("Your name is...");                      //แสดงข้อความ
         String name = in.readLine();                                   //รับค่า name จาก user เป็นข้อความ
         System.out.println("Your age is...");                        //แสดงข้อความ
         String age = in.readLine();                                   //รับค่า age จาก user เป็นข้อความ
         System.out.println("Your occupation is...");             //แสดงข้อความ
         String occupation = in.readLine();                 //รับค่า occupation จาก user เป็นข้อความ
    }
}

--------------------------------------------------------------------------------------

ตัวอย่างที่ 2  //ให้ user กรอกตัวเลข เพื่อให้ระบบทำการบวกเพิ่มจำนวนตั้งแต่ 1 ไปเรื่อยๆจนถึงเลขที่ user กรอก

import java.io.*;         //ต้องประกาศ import เมื่อต้องการใช้ class java.io หาค่าเฉลี่ย
public class PlusContinue             //ชื่อ class จะต้องชื่อเดียวกับ file
{  
     public static void main(String[] args) throws IOException                  //method ที่ใช้สำหรับ run program, โยนทิ้งเมื่อมี exeption
   {   

         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));   //ประกาศคำสั่งที่ใช้ในการรับค่า
         System.out.println("Increase Number From 0 to...");                    //แสดงข้อความ
         String strNumber = in.readLine();                                      //รับค่า number เป็นข้อความ
         int number = Integer.parseInt(strNumber);                              //แปลงค่า number เป็นตัวเลข
         int i=0;                                                         //ประกาศตัวแปรเก็บค่าการวนซ้ำ
         int result = 0;                                                  //ประกาศตัวแปรเก็บค่าผลลัพธ์
         while(i<=number)                                        //วนซ้ำจนกว่าจะเท่ากับค่า number
         {   
          result = result+i;                                  //นำค่าบวกผลลัพธ์เดิมไปเรื่อยๆ
             i++;                                                          //เพิ่มค่าวนซ้ำ 1 ทุกๆรอบการวน
         }
         System.out.println("Result = "+result);                                //แสดงผลลัพธ์
    }
}

 

--------------------------------------------------------------------------------------

ตัวอย่างที่ 3 //คำนวนหาเส้นรอบวงสี่เหลี่ยม จากการรับข้อมูลความกว้างและความยาวของสี่เหลี่ยมจาก user

import java.io.*;        //ต้องประกาศ import เมื่อต้องการใช้ class java.io หาค่าเฉลี่ย
public class SqaurePerimeter            //ชื่อ class จะต้องชื่อเดียวกับ file
{
      public static void main(String[] args) throws IOException                //method ที่ใช้สำหรับ run program, โยนทิ้งเมื่อมี exeption
    { 
         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));   //ประกาศคำสั่งที่ใช้ในการรับค่า
        System.out.println("Input Square Width : ");                            //แสดงข้อความ
        String strWidth = in.readLine();                                        //รับค่า width จาก user เป็นข้อความ
        System.out.println("Input Square Length : ");                           //แสดงข้อความ
        String strLength = in.readLine();                                       //รับค่า length จาก user เป็นข้อความ

        double width = Double.parseDouble(strWidth);                            //แปลงข้อความ width เป็นตัวเลขทศนิยม
        double length = Double.parseDouble(strLength);                          //แปลงข้อความ length เป็นตัวเลขทศนิยม
        double result =  2*(width+length);                               //คำนวนผลลัพธ์เส้นรอบวงเป็นตัวเลขทศนิยม
        System.out.println("The Square Perimeter = "+result);                   //แสดงผลลัพธ์เส้นรอบวง 4 เหลี่ยมเป็นข้อความ
    }
}

 

--------------------------------------------------------------------------------------

ตัวอย่างที่ 4  //คำนวนหาพื้นที่ทรงกลม จากการรับข้อมูลรัศมีจาก user

import java.io.*;                 //ต้องประกาศ import เมื่อต้องการใช้ class java.io หาค่าเฉลี่ย
public class Circle3DArea                     //ชื่อ class จะต้องชื่อเดียวกับ file
{
    public static void main(String[] args) throws IOException           //method ที่ใช้สำหรับ run program, โยนทิ้งเมื่อมี exeption
    {  
       BufferedReader in = new BufferedReader(new InputStreamReader(System.in));   //ประกาศคำสั่งที่ใช้ในการรับค่า
        System.out.println("Input Circle Radius : ");                     //แสดงข้อความ
        String strRadius = in.readLine();                                //รับค่า width จาก user เป็นข้อความ
        double radius = Double.parseDouble(strRadius);               //แปลงข้อความ length เป็นตัวเลขทศนิยม
        double result = Math.PI*radius*radius;                       //คำนวนผลลัพธ์เส้นรอบวงเป็นตัวเลขทศนิยม
        System.out.println("The Circle Area = "+result);                //แสดงผลลัพธ์พื้นที่วงกลมเหลี่ยมเป็นข้อความ
    }
}

ตัวอย่างที่ 5  //คำนวนหาพื้นที่สามเหลี่ยม จากการรับข้อมูลความยาวฐานและความสูงจาก user
import java.io.*;                            //ต้องประกาศ import เมื่อต้องการใช้ class java.io หาค่าเฉลี่ย
public class TriangleArea                  //ชื่อ class จะต้องชื่อเดียวกับ file
{    
    public static void main(String[] args) throws IOException                 //method ที่ใช้สำหรับ run program, โยนทิ้งเมื่อมี exeption
    {   
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));   //ประกาศคำสั่งที่ใช้ในการรับค่า
        System.out.println("Input Triangle Base : ");                       //แสดงข้อความ
        String strBase = in.readLine();                                         //รับค่า base จาก user เป็นข้อความ
        System.out.println("Input Triangle Height : ");                     //แสดงข้อความ
        String strHeight = in.readLine();                                 //รับค่า height จาก user เป็นข้อความ
        double base = Double.parseDouble(strBase);                              //แปลงข้อความ base เป็นตัวเลขทศนิยม
        double height = Double.parseDouble(strHeight);                     //แปลงข้อความ height เป็นตัวเลขทศนิยม
        double result = 0.5*(base+height);                                      //คำนวนผลลัพธ์เส้นรอบวงเป็นตัวเลขทศนิยม
        System.out.println("The Square Area = "+result);                 //แสดงผลลัพธ์พื้นที่ 3 เหลี่ยมเป็นข้อความ
    }
}

 

--------------------------------------------------------------------------------------

=== >>>>   http://gaisorn.blogspot.com/p/java_20.html

--------------------------------------------------------------------------------------

 

แบบฝึกปฏิบัติ บทที่ 10

ใบงานที่ 10 อธิบายวิธีการเขียนโค้ดภาษาจาว่าแบบทำซ้ำ

p>  

 

{jcomments on}

บทที่ 9 อธิบายวิธีการเขียนโค้ดจาวาแบบลำดับ

บทที่ 9 การเขียนโปรแกรมภาษาจาวาแบบลำดับ

บทที่ 9

บทที่ 9

บทที่ 9

บทที่9

บทที่ 9

แบบฝึกปฏิบัติ บทที่ 9

ใบงานที่ 9 อธิบายวิธีการเขียนโค้ดภาษาจาวาแบบลำดับ

p>  

 

{jcomments on}

บทที่ 8 อธิบายวิธีแสดงโค้ดจาวา

บทที่ 8 แสดงโค้ดจาวา

บทที่ 8

บทที่ 8

แบบฝึกปฏิบัติ บทที่ 8

ใบงานที่ 8 อธิบายวิธีการแสดงโค้ดภาษาจา

p>  

 

{jcomments on}

บทที่ 7 อธิบายวิธีการใช้พื้นที่ทำงาน

บทที่ 7 การใช้พื้นที่ทำงาน

บทที่ 7

บทที่ 7

แบบฝึกปฏิบัติ บทที่ 7

ใบงานที่ 7 อธิบายวิธีการใช้พื้นที่ทำงาน

p>  

 

{jcomments on}

บทที่ 1 ความหมายและวิธีการ Debugging

  • Category: debugging with scrat
  • Published: Saturday, 28 December 2019 05:03
  • Written by ครูสุดตา ชูรัตน์
  • Hits: 2721

ความหมายการดีบั๊ก

 

บทที่ 1 ความหมาย และวิธีการ Debugging

          bugคือจุดบกพร่องหรือความผิดพลาดในโปรแกรมคอมพิวเตอร์ นอกจากปัญหาเกี่ยวกับโปรแกรมแล้ว อาจเป็นปัญหาเกี่ยวกับตัวเครื่องก็ได้ บางทีคนเขียนโปรแกรมอาจจงใจทำไว้ หรืออาจไม่ได้ตั้งใจก็ได้ เมื่อเกิด bug ในโปรแกรมขึ้นมาสร้างปัญหากวนใจ เราจะใช้การ debug หรือการตรวจสอบแก้ไขจุดบกพร่องของโปรแกรม การสั่งให้โปรแกรมทำการ Debug นั้นก็คือให้โปรมแกรมสามารถทำงานได้เป็นปกติเหมือนเดิม หรือก็คือการเอา Bug ในยุคก่อนนั้น ดูเหมือนว่าจะไม่ใคร่ได้รับความสนใจนัก เนื่องจากบั๊กนั้นไม่ส่งผลกระทบต่อการทำงานหรือผลไม่เด่นชัด โปรแกรมสมัยก่อนไม่ซับซ้อน แต่ปัจจุบันบั๊กเป็นของแถมที่ให้มาฟรีเมื่อซื้อซอฟต์แวร์เลยทีเดียว สังเกตได้ว่าหากมีโปรแกรมใดๆออกมาใหม่ เมื่อผ่านไปได้สองสามเดือน ผู้ผลิตจะได้รับรายงานผลจากผู้ใช้งานว่า เกิดปัญหาเกี่ยวกับการใช้งานซอฟต์แวร์ตรงนั้นตรงนี้ ทางผู้ผลิตก็จะเริ่มตรวจสอบและแก้ไขไปด้วย ซอฟต์แวร์ในระยะต่อมาก็จะเป็นชุดที่ได้รับการแก้ไขบั๊กดังกล่าวเรียบร้อยแล้ว หรือหากมีการแก้ไขมากกว่าเดิมผู้ผลิตก็มักจะเปลี่ยนชื่อเวอร์ชั่นหรือชื่อรุ่นไป
    คำศัพท์ที่ใกล้เคียง Error , Syntax error

ในอุตสาหกรรม software โดยเฉลี่ยจะมี error ปรากฏขึ้น จำนวน 10-15 error ต่อโค้ดที่เขียน 1,000 บรรทัด ผมยังไม่เจอใครที่เขียนโค้ดและไม่มี bug เลยในรอบเดียวจบ ไม่ว่าจะเป็นคนเก่งแค่ไหนก็ตาม ดังนั้น ก็ย่อมเจอ error หรือ bug เป็นปกติแน่นอนอยู่แล้ว แต่ทีนี้ ปัญหาคือ เราจะจัดการกับ error หรือ bug เหล่านั้นได้อย่างไร เพราะว่าเรื่องนี้เป็นเรื่องที่ต้องผสมกันระหว่าง ความรู้ ความสามารถ ประสบการณ์ เทคนิค และการคิด วิเคราะห์ เรียกว่า การ debug นั้น ต้องอาศัยทักษะมากกว่าการ program ซะอีก และหลายครั้ง การ debug ก็ใช้เวลานานกว่าการ program อีกด้วย

การ debug ที่ควรทำ และเร็ว ก็ประมาณนี้ครับ

  • อ่าน error ที่ปรากฏ - ผมเจอความจริงว่า หลายคนไม่อ่านเลย เจอ error ปุ้บ ก็ไปเปิดโค้ดแล้วแก้

เลย ผมก็เลย งง ว่า คนเหล่านั้น เค้ารู้ได้อย่างไร ว่าจะแก้ตรงไหน เพราะว่า error มันจะบอกค่อนข้างชัดเจน ว่า error ประเด็นไหน บรรทัดอะไร

  • คิดถึงการทำงาน ว่า บรรทัดนั้น ทำงานอย่างไร - ช่วงนี้เราอาจจะต้องแปลงร่างตัวเองเป็น ตัว

compiler ภาษา สักแป้บนึง เพื่ออ่านโค้ดแล้วทำความว่าเข้าใจว่า บรรทัดนั้น หรือ function นั้นทำงานอย่างไร รับค่าอะไรมา ประมวลผลอะไร ส่งค่าอะไรออกไป เรียกว่า ต้องแปลกันให้ได้ ทุกบรรทัดเลยล่ะครับ ไม่งั้น หลุดอีกแน่นอน แต่ถ้า งง แนะนำให้เขียนเป็น logic ใส่กระดาษจะช่วยได้มาก

  • ตั้ง สมมุติฐาน และทำการทดสอบ - ถ้าเราไล่โค้ด ในสมองทำงานถูกต้อง ให้เราตั้งสมมุติฐานแล้วทำ

การทดสอบเลย ตัวอย่างเช่นเรารู้ว่า เมื่อเรา input เลข 9 ให้ function ยกกำลัง2 แล้ว เราจะได้ผลลัพท์เป็น 81 กลับมา ก็ลองใส่สักสามเลข แล้วอ่านค่าว่าได้ตามที่เราคิดจริงหรือไม่ หลายคนไม่ชอบทำตามขั้นตอนนี้เพราะคิดว่าเสียเวลา แต่หารู้ไม่ว่า การไม่ทำตามขั้นตอนนี้เป็นต้นเหตุแห่งการเสียเวลาอีก เพราะว่า ที่เราคิดว่ามันทำงานถูก มันผิดตั้งแต่เริ่มแล้ว มันถึงได้เป็น bug ไง

  • เอาตัวแปรแสดงค่าออกมา ทีละบรรทัดเลย - อันนี้เป็นขั้นเทพแล้วครับ ใช้สำหรับการ debug ที่งม

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

 แค่นี้เองครับ 4 ขั้นตอน เรียงตามความยากของ bug แต่ว่า แต่ละขั้นตอน เราจะต้องใช้ความสามารถมากๆเพราะว่าบางครั้ง เราอาจจะต้องรู้ไปจนถึง ขีดจำกัด ของระบบ หรือขอบเขตของระบบด้วย ตัวอย่างเช่น คนที่สร้าง database field เป็น int ใช้เก็บตัวเลข ก็ทำงานได้ตามปกติ จนกระทั่ง ไปวันหนึ่งพบว่า เมื่อรวมตัวเลขออกมา ได้ไม่ตรงกัน หาความผิดพลาดไม่เจอ จนกระทั่งไปรู้ว่า user มีการใส่ตัวเลขที่เป็นค่า ทศนิยมด้วย แต่ database field int มันไม่เก็บ เพราะว่าธรรมชาติของ int คือเก็บจำนวนเต็ม หรือ อีกตัวอย่าง ก็คือการเชื่อม string และการ update ค่าตัวแปร ที่เป็นปัญหาบ่อยๆ บางทีเราจะเชื่อม string ก็เขียนผิดเป็นการ assign ค่าบ้าง (ทำให้มันทับค่าเดิม) เหล่านี้เป็นต้น

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

วิธีการ Debugging

Build-in Debugger ที่อยู่ใน JavaScript มีประโยชน์มากเพราะมันช่วยหา Bugs อย่างเช่น ใน Nested Callbacks, Promises ที่มักมีความยุ่งยาก คำสั่ง Debugger ทำงานได้ทั้งบน Client Side และ Server Side วันนี้เรามาดู วิธีการหา Bugs ใน JavaScript Code ด้วย Debugger กัน

Syntax

1

http://www.kruis.net/images/เนื้อหา/บทที่ 1/1.png" width="683" height="136" />

คำสั่ง Debugger ช่วยให้เราหยุดการ Execute Code และตรวจสอบตัวแปร, ค่า และอื่น ๆ โดยพื้นฐานแล้วมันทำหน้าที่เป็นตัว Return และหยุด Function จากการ Execute

2

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/Syntax02.png" width="592" height="225" />

เมื่อเรา Execute Code ข้างต้น เราควรเห็นสิ่งนี้ สังเกตที่ข้อความ “Paused in debugger” และปุ่ม Resume และปุ่ม Loop-over ทางด้านขวา ที่ Panel ด้านซ้าย เราจะเห็น “sources” tab และ debugThis Function ของเราที่มีค่าที่เราส่งผ่าน หากคุณเลื่อน Mouse ไปเหนือตัวแปร a และ b คุณก็จะเห็นค่าของพวกมัน

คงไม่มากไปที่จะพูดว่า นี่เป็น Tool ที่มีประโยชน์กรณีที่เรามีสิ่งที่ซับซ้อนเกิดขึ้น และเราจำเป็นต้องตรวจสอบว่ามีอะไรผิดพลาดหรือไม่ Application ที่ซับซ้อนมาก อาจ Fetch ข้อมูลจาก Data Sources ต่าง ๆ นับ 10 แหล่ง แต่หนึ่งในนั้นอาจล้มเหลว แล้วเราจะทำอย่างไรดี หากเกิดเหตุการณ์แบบนี้ ซึ่ง Debugger คือตัวช่วยในเรื่องนี้

3

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/Syntax03.png" width="678" height="268" />

คำสั่ง Debugger จะเรียกใช้ Debugging Functionality ต่าง ๆ เช่น การตั้งค่า Breakpoint เป็นต้น หากไม่มี Debugging Functionality แล้ว คำสั่งก็จะไม่ส่งผลกระทบใด ๆ

Multiple Debuggers

4

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber01.png" width="682" height="181" />Debugger จะมีประโยชน์อย่างยิ่งเมื่อเรามีคำสั่ง Debugger มากกว่า 1 คำสั่ง และมี Callbacks หรือ Promises เป็นจำนวนมาก ลองดูตัวอย่างต่อไปนี้ ที่เรามี Closure Function เรารับค่าจาก Function ด้านนอกแล้วส่งผ่านไปยัง Function ด้านใน:

Debugger จะช่วยเพิ่มความยืดหยุ่นให้เราสามารถตรวจสอบค่าของ Function ทั้งหมดได้ โดยภายใน Closure เราสามารถตรวจสอบค่า ของ Argument a, b และ c เพียงคุณวาง Mouse เหนือ Argument ของ Function แล้วคุณจะเห็นค่าของมัน

5

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber02.png" width="660" height="231" />

เมื่อเราเริ่มรู้จักการใช้ Debugger แล้ว เราลองมาดูตัวอย่างที่ซับซ้อนมากขึ้นกัน อันดับแรก เราต้องการตรวจสอบว่า เราได้ส่งผ่าน name Argument ไปยัง createPerson Function หรือไม่ ถ้าไม่ เราก็จะหยุดการ Execute Code ทั้งหมด และแจ้งเตือนไปยังConsole กรณีที่มี name ให้สร้าง person Object ด้วย Argument ที่ส่งไปให้

6

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber03.png" width="683" height="489" />

เมื่อเราเรียก createPerson Function ด้วย Argument ที่ให้มา Debugger ก็ควรปรากฏขึ้น ลองมาดูว่ามันบอกอะไรเราบ้าง

7

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber04.png" width="586" height="291" />

8

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber05.png" width="627" height="283" />Debugger ตัวแรกจะทำหน้าที่ และทำให้เราสามารถเข้าไปตรวจสอบ Arguments ของ createPerson ได้ คุณสามารถบอกได้ไหมว่า จะเกิดอะไรขึ้นถ้าเราตรวจสอบ person Object?

คุณจะเห็นว่ามันเป็น Undefined ใช่ไหม ทำไม person ถึงเป็น Undefined ได้ล่ะ คำตอบง่ายมาก ก็เพราะเรายังไม่ได้ Execute Code ของเราใน Part นั้นนั่นเอง เราหยุดการ Execute Code ที่บรรทัดแรกของ Function เราไม่มี Scope การเข้าถึง person Object เนื่องจากมันไม่มีอยู่

หากเรากดปุ่ม Resume สีฟ้า Debugger ตัวที่สองก็จะทำหน้าที่ทันที ซึ่งครั้งนี้จะทำภายใน hasName Function

9

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber06.png" width="552" height="245" />

ตอนนี้เราอยู่ใน hasName Function แล้ว โดย Function นี้จะทำการตรวจสอบอย่างรวดเร็วว่า มีการส่งผ่าน name ไปยัง person Function หรือไม่ มันไม่สมเหตุสมผลเท่าไรนักที่จะมีมันใน Function ที่แยกออกมา เนื่องจากเราสามารถตรวจสอบ Property เดียวที่อยู่ภายใน createPerson แต่จุดประสงค์ของการแสดงตัวอย่างของ Debugger มันมีประโยชน์ในการแสดงถึงวิธีการใช้ Debugger ในทางปฏิบัติจริง ๆ person Object ของเรา ยังคงเป้น Undefined เนื่องจากเรากำลัง Execute hasName Function และยังไม่ถึง Part ที่เราสร้าง person Object

สุดท้าย ให้กดปุ่ม Resume เพื่อให้ Debugger ตัวที่สามได้ทำหน้าที่ของมัน

10

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber07.png" width="623" height="270" />

11

http://images.techstarthailand.com/images/blog/Article2019/JSDebuggers/MultipleDebubber08.png" width="598" height="285" />เราควรจะสามารถเห็นค่าของตัวแปรและ Object ทั้งหมดได้เนื่องจาก Code ของเราได้ถูก Execute แล้ว คำถามน่าสนใจคือ จะเกิดอะไรขึ้นถ้าเราไม่ส่งผ่าน name ไปยัง createPerson Function

เห็นได้ชัดว่ามี Warning แจ้งอย่างชัดเจนว่า เราลืมส่งผ่าน name ไปยัง Function นั่นเอง

ฝึกปฏิบัติ บทที่1

ใบงานที่ 1 เรื่อง ความหมายและวิธีการ debugging

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Add comment


Security code
Refresh

(Average rating 0 on rating)

Tribu Alert Popup

วิจัยการศึกษา

การหาค่าประสิทธิภาพนวัตกรรม ครั้งที่ 3

หาประสิทธิภาพ ครั้งที่ 3

การหาค่าประสิทธิภาพของนวัตกรรม ครั้งที่ 2

หาประสิทธิภาพ

การหาค่าประสิทธิภาพของนวัตกรรม ครั้งที่ 2

การหาประสิทธิภาพของนวัตกรรม ครั้งที่ 1

หาประสิทธิภาพ

ประสิทธิภาพครั้งที่ 1

บทที่ 5 สรุปผล อภิปรายผล และข้อเสนอแนะ

April 2021
13
Tuesday