คำถามติดแท็ก null-check

21
มีวิธีการตรวจสอบทั้ง "โมฆะ" และ "ไม่ได้กำหนด" หรือไม่?
เนื่องจาก TypeScript ถูกพิมพ์อย่างรุนแรงเพียงใช้if () {}เพื่อตรวจสอบnullและundefinedฟังดูไม่ถูกต้อง TypeScript มีฟังก์ชั่นเฉพาะหรือไวยากรณ์สำหรับเรื่องนี้หรือไม่?

8
จะตรวจสอบว่าตัวแปรไม่เป็นโมฆะได้อย่างไร?
ฉันรู้ว่าด้านล่างเป็นสองวิธีใน JavaScript เพื่อตรวจสอบว่าตัวแปรไม่ใช่nullแต่ฉันสับสนซึ่งเป็นวิธีปฏิบัติที่ดีที่สุดในการใช้ ฉันควรทำหรือไม่: if (myVar) {...} หรือ if (myVar !== null) {...}

8
ตรวจสอบ JavaScript เป็นศูนย์
ฉันเจอรหัสต่อไปนี้: function test(data) { if (data != null && data !== undefined) { // some code here } } ฉันค่อนข้างใหม่กับ JavaScript แต่จากคำถามอื่น ๆ ที่ฉันได้อ่านที่นี่ฉันรู้สึกว่ารหัสนี้ไม่สมเหตุสมผล โดยเฉพาะคำตอบนี้ระบุว่า คุณจะได้รับข้อผิดพลาดถ้าคุณเข้าถึงตัวแปรที่ไม่ได้กำหนดในบริบทอื่น ๆ typeofกว่าใด อัปเดต:คำตอบ (อ้างถึง) ด้านบนอาจทำให้เข้าใจผิด มันควรจะพูดว่า«ตัวแปรที่ไม่ได้ประกาศ»แทนที่จะ«ตัวแปรไม่ได้กำหนด» ดังที่ฉันค้นพบในคำตอบของRyan ♦ , maericsและnwellnhofถึงแม้ว่าจะไม่มีการขัดแย้งกับฟังก์ชันฟังก์ชันตัวแปรสำหรับอาร์กิวเมนต์จะถูกประกาศเสมอ ความจริงข้อนี้ยังพิสูจน์ข้อแรกในรายการด้านล่าง จากความเข้าใจของฉันสถานการณ์ต่อไปนี้อาจประสบ: ฟังก์ชั่นได้รับการเรียกว่ามีการขัดแย้งใดจึงทำให้ตัวแปรไม่ได้กำหนดและการสร้างข้อผิดพลาดในdatadata != null ฟังก์ชั่นถูกเรียกโดยเฉพาะอย่างยิ่งกับnull(หรือundefined) เป็นอาร์กิวเมนต์ในกรณีที่data != nullได้รับการปกป้องรหัสภายในทำให้การแสดงผลที่&& data !== undefinedไร้ประโยชน์ ฟังก์ชั่นถูกเรียกด้วยอาร์กิวเมนต์ null …

3
ผู้ประกอบการที่เหลืออยู่ใน int ทำให้ java.util.Objects.requireNonNull?
ฉันพยายามทำให้ได้ประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้จากวิธีการภายในบางอย่าง รหัส Java คือ: List<DirectoryTaxonomyWriter> writers = Lists.newArrayList(); private final int taxos = 4; [...] @Override public int getParent(final int globalOrdinal) throws IOException { final int bin = globalOrdinal % this.taxos; final int ordinalInBin = globalOrdinal / this.taxos; return this.writers.get(bin).getParent(ordinalInBin) * this.taxos + bin; //global parent } ในผู้สร้างโปรไฟล์ของฉันฉันเห็นว่ามีการใช้ CPU 1% …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.