ฉันดูโค้ด node.js ก่อนหน้านี้และฉันสังเกตเห็นว่าคนที่เขียนมันดูเหมือนจะชอบไวยากรณ์ต่อไปนี้:
var fn = function (param) {
var paramWithDefault = null == param ? 'Default Value' : param;
}
ในสิ่งที่ฉันคิดว่ากระชับกว่า:
var fn = function (param) {
var paramWithDefault = param || 'Default Value';
}
ฉันสงสัยว่ารูปแบบที่สองเป็นไวยากรณ์ JavaScript ที่สังคมยอมรับได้มากกว่าหรือไม่ฉันเคยเห็นรูปแบบที่แปลกประหลาดมากกว่าตัวดำเนินการแบบไตรภาคเพื่อจุดประสงค์นี้หรือไม่
ฉันสังเกตว่าในตัวอย่างแรกเขาใช้สองเท่า (ไม่ใช่สามเท่า) ซึ่งหมายความว่ามันจะนับว่า "ไม่ได้กำหนด" เป็นโมฆะซึ่งจะลดผลกระทบที่ฉันคิดได้ อย่างไรก็ตามฉันได้อ่านในหลาย ๆ ที่ == เป็นตัวดำเนินการที่ค่อนข้างชั่วร้ายใน JavaScript (JSLint เป็นอย่างมากต่อ IIRC)