11
typeof! ==“ undefined” กับ! = null
ฉันมักจะเห็นรหัส JavaScript ซึ่งตรวจสอบพารามิเตอร์ที่ไม่ได้กำหนด ฯลฯ ด้วยวิธีนี้: if (typeof input !== "undefined") { // do stuff } ดูเหมือนว่าสิ้นเปลืองเนื่องจากเกี่ยวข้องกับการค้นหาทั้งประเภทและการเปรียบเทียบสตริงไม่ต้องพูดถึงคำฟุ่มเฟื่อย มันจำเป็นเพราะundefinedสามารถเปลี่ยนชื่อได้ คำถามของฉันคือ: รหัสนั้นดีกว่าวิธีนี้ได้อย่างไร: if (null != input) { // do stuff } เท่าที่ฉันรู้คุณไม่สามารถกำหนดใหม่nullดังนั้นมันจะไม่ผิดพลาดอย่างกะทันหัน และเนื่องจากการขู่เข็ญชนิดของ!=โอเปอเรเตอร์การตรวจสอบนี้สำหรับทั้งสองundefinedและnull... ซึ่งมักจะเป็นสิ่งที่คุณต้องการอย่างแน่นอน (เช่นสำหรับพารามิเตอร์ฟังก์ชั่นเสริม) ทว่ารูปแบบนี้ยังไม่แพร่หลายและทำให้ JSLint ตะโกนใส่คุณเพื่อใช้ตัว!=ดำเนินการร้าย ทำไมสิ่งนี้จึงถือว่าเป็นรูปแบบที่ไม่ดี