JavaScript มีชื่อเสียงที่ไม่ดีบนอินเทอร์เน็ต แต่มันเป็นเรื่องยากสำหรับคุณที่จะหาภาษาอื่นเช่นมันเป็นแบบไดนามิกที่ใช้กันอย่างแพร่หลายดังนั้นจึงหยั่งรากในชีวิตของเรา เกณฑ์การเรียนรู้ต่ำทำให้หลายคนเรียกมันว่าเป็นภาษาสคริปต์ก่อนวัยเรียน อีกสิ่งหนึ่งที่ทำให้ผู้คนหัวเราะคือแนวคิดของภาษาไดนามิกที่ใช้มาตรฐานสูงของประเภทข้อมูลคงที่ ที่จริงแล้วทั้งคุณและ JavaScript ได้รับตำแหน่งที่ผิดและตอนนี้คุณทำให้ JavaScript โกรธมาก นี่คือเหตุผลห้าประการที่เทคโนโลยี JavaScript ของคุณแย่มาก
1. คุณไม่ได้ใช้เนมสเปซ
คุณยังจำได้ไหมว่าในวิทยาลัยครูบอกว่าอย่าใช้ตัวแปรระดับโลกในการบ้านของคุณ? การใช้ตัวแปรส่วนกลางใน JavaScript นั้นไม่มีข้อยกเว้น หากคุณไม่ระวังคุณจะกลายเป็นเรื่องวุ่นวายและมีสคริปต์ที่ยุ่งเหยิงและไลบรารีสคริปต์ที่พบได้จากทุกมุมของอินเทอร์เน็ต หากคุณตั้งชื่อตัว loader ตัวแปร () คุณจะก่อให้เกิดปัญหาอย่างจงใจ หากคุณโอเวอร์โหลดฟังก์ชั่นโดยไม่รู้ตัว JavaScript จะไม่เตือนคุณเลย คุณเรียกมันว่าภาษาการเขียนโปรแกรมก่อนวัยเรียนจำได้ไหม? สิ่งที่ฉันจะพูดคือคุณต้องรู้ว่าเกิดอะไรขึ้นหลังจากทำสิ่งนี้
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น derp () {แจ้งเตือน ("หนึ่ง"); -
ฟังก์ชั่น derp () {แจ้งเตือน ("สอง"); -
derp ();
"สอง" คำตอบคือ "สอง" ไม่จำเป็นต้องเป็นกรณีนี้มันอาจเป็น "หนึ่ง" ดังนั้นจึงเป็นเรื่องง่ายที่จะใส่รหัสทั้งหมดของคุณในเนมสเปซของคุณเอง นี่คือวิธีง่ายๆในการกำหนดเนมสเปซของคุณเอง
การคัดลอกรหัสมีดังนี้:
var foospace = {};
foospace.derp = function () {การแจ้งเตือน ("หนึ่ง"); -
ฟังก์ชั่น derp () {แจ้งเตือน ("สอง"); -
foospace.derp ();
2. คุณกำลังทำกลอุบายคุณกำหนดตัวแปรทีละตัว
การใช้การรวมกันของตัวเลขที่อธิบายไม่ได้ของคุณเป็นชื่อตัวแปรคือการสิ้นสุดการสูญเสีย การมองหาตัวแปรอักขระโดยไม่มีความหมายใด ๆ ในบล็อกรหัส 40 บรรทัดเป็นฝันร้ายสำหรับการบำรุงรักษา การผสมการประกาศครั้งแรกของตัวแปรลงในบล็อกรหัส 40 บรรทัดก็เป็นฝันร้ายเช่นกัน แม้ว่าคุณจะพบกับตัวแปรตัวเองคุณก็อดไม่ได้ที่จะถามตัวเองว่า: "สิ่งนี้กำหนดไว้ที่ไหน?" จากนั้นใช้ชุด Ctrl+F อย่างรวดเร็วเพื่อค้นหาคำจำกัดความเริ่มต้นของตัวแปรนี้ในซอร์สโค้ด ไม่อย่าทำเช่นนี้ในทางตรงกันข้ามมันเป็นการละเมิด JavaScript และวิธีการโง่ ๆ คุณควรกำหนดตัวแปรที่ด้านบนของขอบเขตการใช้งานเสมอ ไม่สามารถพูดได้ว่าเพราะไม่จำเป็นคุณไม่สามารถทำได้
การคัดลอกรหัสมีดังนี้:
การทำงาน(){
var a, // คำอธิบาย
B; //คำอธิบาย
//กระบวนการ…
-
3. คุณไม่เข้าใจขอบเขตตัวแปรของ JavaScript
คุณเป็นโปรแกรมเมอร์อัจฉริยะคุณกิน C ++ และดึงรายการ คุณรู้ว่าช่วงของตัวแปรคืออะไรคุณสามารถควบคุมตัวแปรของคุณได้อย่างสมบูรณ์และคุณกำลังดูพวกเขาเหมือนจักรพรรดิสูงสุด อย่างไรก็ตาม JavaScript ดึงอึในกาแฟของคุณและหัวเราะอย่างไม่สิ้นสุด
การคัดลอกรหัสมีดังนี้:
var herp =” หนึ่ง”;
-
var herp =” สอง”;
-
การแจ้งเตือน (Herp);
ในกรณีนี้คุณได้รับ Herp ไม่ใช่ "หนึ่ง" แต่ "สอง" ช่วงตัวแปรที่ถูกต้องของ JavaScript ไม่ได้ขึ้นอยู่กับบล็อกรหัสเช่นภาษาอื่น ๆ ช่วงตัวแปร JavaScript ขึ้นอยู่กับฟังก์ชั่น แต่ละฟังก์ชั่นมีช่วงตัวแปรของตัวเองและ JavaScript ก็เย็นในลักษณะนี้โดยไม่สนใจขอบเขตที่ห่อหุ้มด้วยการจัดฟันที่ไม่มีความหมาย ในความเป็นจริง JavaScript นั้นเจ๋งมากจนคุณสามารถผ่านขอบเขตตัวแปรเช่นเนมสเปซหรือตัวแปร
4. คุณคิดว่าคุณสมบัติเชิงวัตถุของ JavaScript นั้นเพิ่งถูกกราฟต์
JavaScript นับตั้งแต่ก่อตั้งขึ้นเป็นภาษาที่มุ่งเน้นวัตถุ ทุกอย่างเป็นวัตถุใน JavaScript ทั้งหมด! แม้แต่สัญลักษณ์ที่แท้จริงเช่นตัวเลขและตัวละครก็สามารถแปลงเป็นวัตถุผ่านตัวสร้างโดยธรรมชาติของตัวเอง เมื่อเทียบกับภาษาที่มุ่งเน้นวัตถุอื่น ๆ JavaScript นั้นแตกต่างกันในที่ไม่มีคลาส วัตถุ JavaScript ถูกกำหนดเช่นฟังก์ชั่นและแม้แต่ฟังก์ชั่นเองก็เป็นวัตถุ JavaScript มีคุณสมบัติที่เรียกว่า Prototype คุณสมบัตินี้ถูกสร้างขึ้นในวัตถุทั้งหมด คุณสามารถเปลี่ยนการสร้างวัตถุปรับเปลี่ยนวัตถุเพิ่มตัวแปรมากขึ้นและฟังก์ชั่นอื่น ๆ
การคัดลอกรหัสมีดังนี้:
var derp; // จะถืออินสแตนซ์ของ Herp
var herp = function () {
this.opinion =” JavaScript นั้นเย็นกว่าพื้นฐาน”;
-
herp.prototype.speak = function () {Alert (this.opinion); -
var derp = new herp ();
derp.speak ();
หากสิ่งนี้ดูเหมือนจะไม่มีส่วนเกี่ยวข้องกับคุณฉันอยากจะแนะนำ Google เพื่อนที่ดีของฉันให้กับคุณซึ่งเป็นสิ่งที่ดีในการช่วยให้ผู้คนเรียนรู้ความรู้ Object-oriented เป็นหัวข้อใหญ่สำหรับบทความสั้น ๆ และต่ำของฉัน
5. เมื่อคุณใช้คำหลัก "ใหม่" มันก็เหมือนคนตาบอดและม้าตาบอด
JavaScript ต้องเป็นแฟนรักครั้งแรกของคุณเพราะคุณดูเหมือนจะสูญเสีย หากคุณต้องการโปรด JavaScript เหมือนคนจริงคุณต้องเข้าใจสัญลักษณ์วัตถุ โดยทั่วไปคุณไม่จำเป็นต้องใช้คำหลักใหม่ยกเว้นเมื่อคุณต้องการสร้างอินสแตนซ์วัตถุหรือในกรณีที่หายากที่ข้อมูลถูกโหลดในลักษณะล่าช้า การกำหนดที่อยู่ตัวแปรใหม่จำนวนมากใน JavaScript เป็นการดำเนินการที่ช้ามากและด้วยเหตุผลที่มีประสิทธิภาพคุณควรใช้สัญลักษณ์วัตถุเสมอ
การคัดลอกรหัสมีดังนี้:
var rightway = [1, 2, 3];
var ผิด = อาร์เรย์ใหม่ (1, 2, 3);
คุณจำได้ไหมว่าฉันบอกว่าช่วงตัวแปรของ JavaScript ขึ้นอยู่กับฟังก์ชั่น? คุณจำใครบางคนที่บอกว่าวัตถุจาวาสคริปต์ถูกกำหนดเหมือนฟังก์ชั่นหรือไม่? หากคุณไม่ใช้คำหลักใหม่เพื่อประกาศวัตถุคุณจะทำให้วัตถุนี้เป็นขอบเขตทั่วโลก ดังนั้นจึงเป็นนิสัยที่ดีที่จะใช้คำหลักใหม่เพื่อประกาศวัตถุ
การคัดลอกรหัสมีดังนี้:
var derp =” หนึ่ง”;
var herp = function () {
this.derp =” สอง”;
-
var foo = herp ();
การแจ้งเตือน (DERP);
หากคุณเขียนด้วยวิธีนี้ JavaScript จะไม่สนใจและคำตอบที่คุณปรากฏขึ้นจริงๆคือ "สอง"! มีหลายวิธีในการป้องกันไม่ให้วัตถุทำพฤติกรรมดังกล่าวซึ่งสามารถใช้ในการใช้อินสแตนซ์ แต่วิธีที่ดีกว่าคือการใช้คำหลักใหม่อย่างถูกต้องซึ่งทำให้มืออาชีพมากขึ้น
ตอนนี้คุณรู้แล้วว่ารหัส JavaScript ของคุณแย่มากและถ้าคุณจำสิ่งที่กล่าวไว้ข้างต้นรหัสของคุณจะดีขึ้น ฉันชอบใช้ปุ่ม 3 แท็บเพื่อเยื้องรหัสฉันชอบใช้ขีดเส้นใต้เพื่อเชื่อมต่อคำฉันชอบที่จะใช้ประโยชน์จากตัวอักษรเริ่มต้นของฟังก์ชั่นเพื่อระบุว่ามันเป็นวัตถุ แน่นอนนี่เป็นอีกการสนทนา มีเหตุผลหลายประการที่รหัสจาวาสคริปต์ของคุณไม่ดีเช่นเดียวกับที่ฉันมีทักษะมากมายดังนั้นฉันจึงสามารถแสดงความคิดเห็นการสนับสนุนคัดค้านและให้คำแนะนำในความคิดเห็น
ขอบคุณมากที่ Rogeliorv และ Jared Wein ที่ชี้ให้เห็นข้อผิดพลาดในจุดที่ 5 คุณแข็งแกร่งมาก