การตัดสินเปรียบเทียบ
การตัดสินเปรียบเทียบคือการเปรียบเทียบสองค่าและส่งคืนค่าบูลีนเพื่อระบุว่ามีการปฏิบัติตามเงื่อนไขการเปรียบเทียบหรือไม่ JavaScript มีตัวดำเนินการเปรียบเทียบทั้งหมด 8 ตัว ที่นี่เราส่วนใหญ่พูดถึงความแตกต่างระหว่างผู้ประกอบการที่มีความเท่าเทียมกันอย่างเข้มงวดและผู้ประกอบการที่เท่าเทียมกัน
ตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวด ===
ตรวจสอบว่าการส่งคืนของสองค่านั้นแตกต่างกันเท็จค่าทั้งสองค่าเป็นค่า NULL/ไม่ได้กำหนด/true/false จริง หนึ่งในสองค่าคือ NAN, FALSE, ทั้งสองค่าเป็นตัวเลขและเท่ากัน, จริง, ค่าทั้งสองเป็นสตริงและค่าที่เท่ากันเป็นจริงค่าทั้งสองชี้ไปที่ประเภทอ้างอิงเดียวกัน true1 === "1" // falsetrue === true // trueundefined === undefined // true1 === 1 // truenan == false [] === [] // false (ฟังก์ชัน () {} === function () {}) // falseavar v1 = {}; var v2 = v1; // ค่าสองค่าอ้างถึงวัตถุเดียวกัน v1 === v2 // trueตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวดมีตัวดำเนินการที่ไม่เท่าเทียมกันอย่างเข้มงวด (! ==) และผลการดำเนินงานของทั้งสองนั้นตรงกันข้าม
ตัวดำเนินการเท่ากัน ==
หากตัวดำเนินการเท่าเทียมกันเปรียบเทียบข้อมูลประเภทเดียวกันตัวดำเนินการความเท่าเทียมกันอย่างเข้มงวดเหมือนกันถ้าตัวดำเนินการเท่าเทียมกันเปรียบเทียบประเภทของข้อมูลที่แตกต่างกัน: ประเภทของข้อมูลดั้งเดิมจะถูกแปลงเป็นประเภทตัวเลขแปลงทั้งสตริงและบูลีนเป็นค่าตัวเลข // true'123 '== 123; // จริง '123' จะถูกแปลงเป็นค่าตัวเลข 123False == 0; // จริงการแปลงค่าเท็จเป็นค่าตัวเลขคือ 0'a '==' a '; // false การเข้ารหัสที่แปลงแล้วแตกต่างกัน 123 == {}; // false, การดำเนินการ toString () หรือ valueof () จะเปลี่ยน 123 == = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = รักรักเฟน = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = // false ตราบใดที่มีน่านมันเป็นเท็จ {} == {}; // false การเปรียบเทียบคือที่อยู่ของพวกเขา ที่อยู่อ้างอิงของวัตถุที่สร้างขึ้นใหม่แต่ละชิ้นนั้นแตกต่างกัน == undefined // true'nan '== nan // false123 == nan // falsenan == nan // falsefalse == 0 // truetrue == 1 // truetrue == 2 // เท็จ == 0 // //เท็จตัวดำเนินการความเท่าเทียมมีตัวดำเนินการที่ไม่เท่ากัน (! =) และผลการดำเนินงานของทั้งสองนั้นตรงกันข้าม
!!ผู้พิพากษา
!! เทียบเท่ากับ Boolean มันมีประโยชน์มากเมื่อเขียนรหัส !! การแปลงเป็นประเภท Boolean สำหรับการตัดสินมีประโยชน์มาก
!! 'xzavier'; // จริง!!''; // false !! '0'; // จริง !! '1'; // true !! '-1' // true !! 0 // false !! undefined // false !! null // false !! nan // false !! {}; // true !! {ชื่อ: 'xz'} // true !! []; // จริง !! [1,2,3]; // จริง !! จริง; // จริง!ผู้พิพากษา
ผู้ประกอบการผกผัน! ใช้เพื่อเปลี่ยนค่าบูลีนเป็นค่าตรงข้ามนั่นคือความจริงกลายเป็นเท็จและเท็จกลายเป็นจริง สำหรับข้อมูลที่ไม่ใช่บูลีนผู้ประกอบการผกผันจะแปลงเป็นบูลีนโดยอัตโนมัติ กฎคือค่าหกค่าต่อไปนี้กลับเป็นจริงและค่าอื่น ๆ จะกลับเป็นเท็จ
null null ที่ไม่ได้กำหนด 0 (รวมถึง +0 และ -0) nan string ('')! undefined // true! null // true! false // true! 0 // true! nan // true! "" // true! 54 // false! 'hello' // false![] และ {} การตัดสิน
สำหรับ [] และ {} เราจะตัดสินพวกเขาในประมวลกฎหมายธุรกิจดังกล่าวข้างต้นอย่างแน่นอน
- // true !! {ชื่อ: 'xz'} // true !! []; // จริง !! [1,2,3]; // จริง ไม่สามารถใช้สำหรับการตัดสินได้! และ!. สำหรับอาร์เรย์เราใช้แอตทริบิวต์ length เพื่อตัดสิน
[] .length // 0 เท็จ [1,2,3]. ความยาว // 3 จริง
สำหรับวัตถุคุณสามารถใช้วิธีการของ jQuery $.isEmptyObject(obj) หรือคุณสามารถห่อหุ้มวิธีการโดยการเลียนแบบ jQuery เพื่อเขียนก
ฟังก์ชั่น isemptyObject (obj) {ชื่อ var; สำหรับ (ชื่อใน obj) {return false; } return true;} isemptyObject ({}); // trueIsEmpTyObject ({ชื่อ: 'xzavier'}); เท็จ แนะนำห้องสมุดเครื่องมือ underscore ซึ่งมีวิธีการ isEmpty(object)
const _ = ต้องการ ('ขีดล่าง'); _. isempty ({}); // จริง&&ผู้พิพากษา
ใช้ในการแสดงออกตามเงื่อนไขกฎคือ:
num1 && num2true True True True False False False False False False False
ใช้ในคำสั่งกฎคือ:
ผลลัพธ์ = Expression1 && Expression2
หาก Expression1 ประเมินเป็นเท็จผลลัพธ์คือ Expression1 มิฉะนั้นผลลัพธ์คือ Expression2
(1 - 1) && (x + = 1) // 0 (2> 1) && (5 + 5) // 10 (2 + 1) && (5 + 5) // 10
|| การตัดสิน
ใช้ในการแสดงออกตามเงื่อนไขกฎคือ:
num1 || num2true True True True True True True True False False False
ใช้ในคำสั่งกฎคือ:
หากค่าบูลีนของตัวดำเนินการแรกเป็นจริงค่าของตัวดำเนินการแรกจะถูกส่งคืนและตัวดำเนินการที่สองจะไม่ได้รับการประเมินอีกต่อไป
หากค่าบูลีนของตัวดำเนินการแรกเป็นเท็จค่าของตัวดำเนินการที่สองจะถูกส่งคืน
|| โดยทั่วไปผู้ประกอบการดำเนินการตัดสินการแสดงออกตามเงื่อนไขและการประมวลผลความทนทานต่อความผิดในรหัสธุรกิจ หากเราไม่สามารถรับข้อมูลได้เมื่อดึงข้อมูลมันไม่สามารถส่งผลกระทบต่อรหัสธุรกิจที่ตามมาได้ดังนั้นเราจึงต้องทนต่อความผิดพลาด - เป็นวิธีการเขียนที่ทนต่อความผิดพลาดที่ดีมากซึ่งเทียบเท่ากับการให้ข้อมูลสำรอง
ข้อมูล var = ไม่ได้กำหนด || backup_data; // เมื่อมีข้อผิดพลาดในคำขอและข้อมูลไม่ได้กำหนดให้ไปที่ข้อมูลสำรองข้อมูลสำรองข้อมูล
การตัดสินสามตา
กฎ:
เงื่อนไข ? Expression1: Expression2; ฟังก์ชั่น absn (xzavier) {return xzavier> 0? xzavier: -xzavier;} absn (-123); // 123absn (123); // 123หากค่าบูลีนของนิพจน์แรกเป็นจริงค่าของนิพจน์ที่สองจะถูกส่งคืนมิฉะนั้นค่าของนิพจน์ที่สามจะถูกส่งคืน
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของการตัดสินในรหัส JavaScript สำหรับทุกคน ฉันหวังว่าเนื้อหาของบทความนี้จะเป็นประโยชน์กับทุกคนที่ใช้ JavaScript