อนุสัญญา JavaScript สำหรับไม่มีการดำเนินการคืออะไร? เช่นเดียวกับpass
คำสั่งPython
- ทางเลือกหนึ่งเป็นเพียงฟังก์ชันเปล่า:
function() {}
- jQuery เสนอ
$.noop()
ซึ่งเรียกใช้ฟังก์ชันว่างด้านบน - เป็นที่ยอมรับได้
false
หรือ0
ไม่เพียงแค่ป้อนค่าหรือ?
ในบริบท ... ทั้งหมดนี้ทำงานได้โดยไม่มีข้อผิดพลาดใน Chrome:
var a = 2;
(a === 1) ? alert(1) : function() {};
(a === 1) ? alert(1) : $.noop();
(a === 1) ? alert(1) : false;
(a === 1) ? alert(1) : 0;
แก้ไข: ผู้คนจำนวนมากตอบว่า "อย่าทำแบบนี้! เปลี่ยนโครงสร้างโค้ด!" นี่ทำให้ฉันนึกถึงโพสต์ที่มีคนถามว่าจะดมเบราว์เซอร์ได้อย่างไร เขาได้รับการเขื่อนกั้นน้ำของการโพสต์บอกว่า "ไม่ทำอย่างนั้นมันชั่วร้าย" แต่ไม่มีใครบอกเขาถึงวิธีการสูดอากาศเบราว์เซอร์ นี่ไม่ใช่การตรวจสอบโค้ด ลองนึกภาพว่าคุณกำลังจัดการกับรหัสเดิมที่ไม่สามารถเปลี่ยนแปลงได้และหากไม่มีฟังก์ชันบางอย่างที่ส่งผ่านเข้ามาก็จะทำให้เกิดข้อผิดพลาด หรือเพียงแค่ว่าเป็นวิธีการที่ลูกค้าต้องการมันและพวกเขาจะจ่ายเงินให้ฉัน ดังนั้นโปรดตอบคำถาม : วิธีใดที่ดีที่สุดในการระบุฟังก์ชัน "no operation" ใน JavaScript
EDIT2: แล้วหนึ่งในนั้นล่ะ?
true;
false;
0;
1;
null;
0
ใดที่จะมีประสิทธิภาพดีกว่า (หรือแย่กว่า) ฉันจะบอกว่าสิ่งที่ถูกต้องคือif (a === 1) doSomething();
และไม่ใช้? :
เมื่อมันไม่สมเหตุสมผล
if (statement) action; else ;
false
หรือ0
จะทำงาน; null
เป็นวิธีที่ดีในการแสดงออกถึงการไม่ดำเนินการ