วันนี้ฉันพบคำถามเกี่ยวกับ GitHub เกี่ยวกับวิธีการใช้ JavaScript อย่างถูกต้องสำหรับการพัฒนาโปรแกรมของเรา ฉันเกิดขึ้นกับต้นฉบับอย่างไร้ยางอาย ... มันเป็นการหลอกลวง มาแบ่งปันกับคุณ
วิธีการที่สมเหตุสมผลส่วนใหญ่ในการใช้ JavaScript
ประเภท // ประเภท
วัตถุ // วัตถุ
อาร์เรย์ // อาร์เรย์
สตริง // สตริง
ฟังก์ชั่น // ฟังก์ชั่น
คุณสมบัติ // คุณสมบัติ
ตัวแปร // ตัวแปร
Hoisting // การปรับปรุงตัวแปร
การแสดงออกตามเงื่อนไขและความเท่าเทียมกัน // การแสดงออกตามเงื่อนไขและความเท่าเทียมกัน
บล็อก // บล็อกรหัส
ความคิดเห็น // ความคิดเห็น
ช่องว่าง //
เครื่องหมายจุลภาค // เครื่องหมายจุลภาค
เครื่องหมายอัฒภาค // เซมิโคลอน
ประเภทการหล่อและการบีบบังคับ // การแปลงประเภท
การตั้งชื่อการประชุม // กฎการตั้งชื่อ
accessors // access
ตัวสร้าง // ตัวสร้าง
กิจกรรม // เวลา
โมดูล // รุ่น
jQuery //
ECMASCRIPT 5 ความเข้ากันได้ // ECMA 5 ความเข้ากันได้
การทดสอบ // การทดสอบ
ประสิทธิภาพ // ประสิทธิภาพ
ทรัพยากร // ทรัพยากร
ในป่า
การแปล
คู่มือคู่มือสไตล์จาวาสคริปต์
ผู้มีส่วนร่วม
ใบอนุญาต
ประเภท (ประเภท)
ประเภทดั้งเดิม: เมื่อเข้าถึงประเภทดั้งเดิมมันจะเข้าถึงเนื้อหาของประเภทดั้งเดิมได้โดยตรง
สาย
ตัวเลข
บูลีน
โมฆะ
ไม่ได้กำหนด
var foo = 1,
บาร์ = foo;
บาร์ = 9;
console.log (foo, bar); // => 1,9
ประเภทที่ซับซ้อน: เมื่อคุณเข้าถึงประเภทข้อมูลประเภทที่ซับซ้อนคุณจะเข้าถึงค่าของตัวแปรผ่านการอ้างอิง
วัตถุ
อาร์เรย์
การทำงาน
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
วัตถุ (วัตถุ)
ใช้ตัวอักษรวัตถุเพื่อสร้างวัตถุ (ตัวอักษร)
// badvar item = new Object (); // goodvar item = {};อย่าใช้คำหลักที่สงวนไว้เป็นชื่อคุณสมบัติของวัตถุ สิ่งนี้จะไม่ทำงานภายใต้ IE8
// badvar superman = {ค่าเริ่มต้น: {clark: 'kent'}, ส่วนตัว: true}; // goodvar superman = {ค่าเริ่มต้น: {clark: 'kent'}, ซ่อน: true};อาร์เรย์ (อาร์เรย์)
ใช้วิธีการตามตัวอักษรเพื่อสร้างอาร์เรย์
// รายการ badvar = array ใหม่ (); // รายการ goodvar = [];
หากคุณไม่ทราบความยาวของอาร์เรย์ให้ใช้วิธีการในตัวของอาร์เรย์สำหรับการดำเนินการแทรก
var somestack = []; // badsomestack [somestack.length] = 'vein'; // goodsomestack.push ('หลอดเลือดดำ');เมื่อคุณต้องการคัดลอกอาร์เรย์ให้ใช้ array.slice
var len = items.length, // หมายถึงเนื้อหาด้านบน ... itemcopy = [], i; // badfor (i = 0; i <len; ++ i) {itemcopy [i] = รายการ [i];} // gooditemcopy = items.slice (); // ฉันต้องให้ความสนใจที่นี่ ฉันไม่รู้เรื่องนี้จริงๆ ...สตริงสตริง
ใช้คำพูดเดียวเพื่อแนบสตริง ... // ฉันไม่พบคำอธิบายที่เหมาะสมสำหรับการแสดงที่นี่ฉันชอบใช้แบบนี้ (เป็นการดีกว่าที่จะสวมใส่น้อยกว่าการสวมใส่ ... คุณรู้ ... )
// badvar name = "bob parr"; // goodvar name = 'bob parr'; // badvar fullName = "bob" + this.lastname; // goodvar fullName = 'bob' + this.lastName;
เมื่อสตริงยาวกว่า 80 อักขระคุณจะต้องใช้การเชื่อมต่อสตริงเพื่อเขียนหลายบรรทัด โปรดทราบว่าหากการใช้มากเกินไปการต่อสายของสตริงจะส่งผลต่อประสิทธิภาพ
// badvar errorMessage = 'นี่เป็นข้อผิดพลาดที่ยาวมากที่ถูกโยนเพราะแบทแมน เมื่อคุณหยุดคิดว่าแบทแมนมีอะไรเกี่ยวข้องกับสิ่งนี้คุณจะไม่เร็วเลย '; // badvar errormessage =' นี่เป็นข้อผิดพลาดที่ยาวนานมากที่ถูกโยนทิ้งเพราะ/ของแบทแมน เมื่อคุณหยุดคิดว่าแบทแมนมีอะไรทำ /กับสิ่งนี้คุณจะได้รับที่ไหน /fast.';// goodvar errormessage = 'นี่เป็นข้อผิดพลาดที่ยาวมากที่ถูกโยนทิ้งเพราะ' +'ของแบทแมน เมื่อคุณหยุดคิดว่าแบทแมนมีอะไรทำ ' +' กับสิ่งนี้คุณจะไม่เร็ว ';
หากคุณสร้างอาร์เรย์ด้วยวิธีที่วางแผนไว้เช่นต่อไปนี้ การใช้ array.join จะทำงานได้ดีขึ้น ..
รายการ var, ข้อความ, ความยาว, i; message = [{stat: 'ความสำเร็จ', ข้อความ: 'อันนี้ทำงาน'}, {stat: 'ความสำเร็จ', ข้อความ: 'อันนี้ทำงาน'}, {stat: 'ความสำเร็จ', ข้อความ: '<li>' + ข้อความ [i] .message + '</li>';} ส่งคืนรายการ + '</ul>';} // กล่องจดหมาย GoodFunction (ข้อความ) {items = []; สำหรับ (i = 0; i <length; i ++) {items [i] = ข้อความ [i] '</li> </ul>';}ฟังก์ชั่น
// นิพจน์ฟังก์ชั่นที่ไม่ระบุชื่อ .. var anonymous = function () {return true;}; // name function expression.var named = function named () {return true;}; // ฟังก์ชั่นอ้างอิงทันที (ฟังก์ชั่น () {console.log ('ยินดีต้อนรับสู่อินเทอร์เน็ตโปรดติดตามฉัน');}) ();อย่ากำหนดฟังก์ชั่นในรหัสบล็อกที่ไม่ใช่ฟังก์ชัน (ถ้า, ในขณะที่) ตามลําดับฟังก์ชั่นถูกกำหนดให้กับชื่อตัวแปรภายนอกที่อยู่ตรงกลางของบล็อกรหัส
// badif (currentUser) {ฟังก์ชั่นทดสอบ () {console.log ('nope.');}} // goodvar test; ถ้า (currentUser) {test = function () {console.log ('yup'); - // ระวังกับกึ่งอวโลน}คุณสมบัติ (คุณสมบัติ)
ใช้ไวยากรณ์ DOT เพื่อเข้าถึงคุณสมบัติ
var luke = {jedi: true, อายุ: 28}; // badvar isjedi = ลุค ['jedi']; // goodvar isjedi = lucky.jedi;เมื่อเข้าถึงคุณสมบัติของวัตถุโดยใช้ตัวแปรให้ใช้ [] วงเล็บตารางเพื่อเข้าถึง
var luke = {jedi: true, อายุ: 28}; ฟังก์ชั่น getProp (prop) {return luke [prop];} var isjedi = getProp ('Jedi');