• javascript use strict คืออะไร

    javascript

    Tips & Tricks นี้จะพูดถึงเรื่องสิ่งเล็ก ๆ ที่สำคัญในภาษา javascript โดยปกติแล้วเวลาที่เราเขียนโค้ด javascript นั้นด้วยตัวภาษา javascript นั้นเป็นแบบ Dynamic Programming Language ซึ่งเวลาเราเขียนโค้ดมันก็จะเป็นการเขียนแบบ style ใคร style มัน ประกาศตัวแปลก่อนบ้าง (ประกาศโดยใช้ var) ไม่ประกาศจะเขียนจะเรียกใช้ยังไงก็ได้ ซึ่งก็ไม่ผิดหลักตัวภาษา javascript แต่อย่างใด แล้วบางอย่างเวลามี error browser ก็ไม่แน่ใจว่าโค้ดที่เราเขียนไปนั้นมันใช่ error จริงหรือเปล่า ดังนั้น ECMAScript 5 ก็เลยมีข้อกำหนดมาเพื่อควบคุมการเขียนโค้ด javascript ของเราให้มีรูปแบบที่ชัดเจนมากขึ้น ซึ่งจะเรียกว่า strict mode ซึ่ง strict mode นี้จะเป็นแบบ opt-in นั้นหมายความว่าคุณใช้เขียนโค้ดด้วย strict mode หรือไม่ก็ได้ ถ้าคุณอยากจะเขียนโค้ดด้วย strict mode คุณก็ใช้คำสั่งต่อไปนี้ประกาศไว้ก่อนโค้ดของคุณ

     

    "use strict"

     

    ถ้าคุณลองดูที่โค้ด plugin ของ jQuery โดยส่วนมากเขาจะมีใช้ “use strict” กันเกือบจะทุกอัน และสำหรับ use strict นั้นจะสามารถกำหนดได้ว่าจะให้ใช้ เฉพาะในฟังก์ชั่น หรือ ทั้งหมดของโค้ด javascript ที่เราเขียนก็ได้ ตรงนี้ก็ขึ้นอยู่กับเราจะกำหนด

    มาดูตัวอย่างการใช้ strict mode สำหรับโค้ด javascript ทั้งหมด ก็ทำดังนี้

     

    "use strict";
    variable = 7; // throws a ReferenceError

     

    จากโค้ดผมกำหนดว่าโค้ดที่เขียนจะเป็น strict mode เมื่อผมไม่ได้ประกาศตัวแปร variable ก่อนแล้วมากำหนดค่าให้ตัวแปรเลย ก็เลยทำให้เวลารันโค้ด browser ก็จะบอกว่า ReferenceError

    อีกตัวอย่างสำหรับกำหนด strict mode เฉพาะฟังก์ชั่นที่เราต้องการ ดังนี้

    variable1 = 10;
    
    function strict() {
        "use strict";
         variable2 = 7; // throws a ReferenceError
    }
    
    variable3 = 20;
    
    strict();

    จากโค้ดผมมีตัวแปร 3 และมีฟังก์ชั่น strict ซึ่งมี 2 ตัวแปรอยู่ด้านนอกฟังก์ชั่น คือ variable1 และ variable3 แล้วภายในฟังก์ชั่นผมกำหนดว่าโค้ดต้องเป็น strict mode ด้วยการประกาศ “use strict” แล้วผมกำหนดค่าให้ตัวแปร variable2 = 7 หลังจากนั้นผมก็ทำการเรียกฟังก์ชั่น strict() ผลที่ได้ browser จะแสดง error บอกว่า ReferenceError สำหรับ variable2 เห็นผมเดียวกันกับตัวอย่างก่อนหน้านี้  แต่ตัวแปรที่อยู่นอกฟังก์ชั่น strict จะไม่มี error อะไรแจ้งบอกจาก browser แต่อย่างใด  เหตุผลก็อย่างที่ผมบอกว่า strict mode มันเป็นแบบ opt-in คือเลือกที่จะใช้หรือไม่ใช้ก็ได้ แล้วจะใช้สำหรับฟังก์ชั่นหรือโค้ดทั้งหมดหรือไม่ก็ได้

    ข้อมูลเพิ่มเติมก็สามารถไปอ่านต่อได้ที่  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode

     

    ที่มา : http://www.developers.in.th/javascript-use-strict-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/

     

     

     

     

     

     

    Comments

    comments

Comments are closed.