Back to Question Center
0

ຄວາມຈິງແລະການປອມແປງ: ເວລາທັງຫມົດແມ່ນບໍ່ເທົ່າທຽມກັນໃນ JavaScript            ຄວາມຈິງແລະ Falsy: ໃນເວລາທີ່ທັງຫມົດແມ່ນບໍ່ເທົ່າທຽມກັນໃນ JavaScriptRelated Topics: npmjQueryAjaxRaw Semalt

1 answers:
Truthy ແລະ Falsy: ໃນເວລາທີ່ທັງຫມົດແມ່ນບໍ່ເທົ່າທຽມກັນໃນ JavaScript

ຕົວແປ Javascript ຖືກປະກົດຕົວຢ່າງວ່ອງໄວ / ແບບເຄື່ອນໄຫວແລະພາສາບໍ່ໄດ້ກັງວົນວ່າຄ່າທີ່ຖືກປະກາດຫຼືປ່ຽນແປງ.

Truthy and Falsy: When All is Not Equal in JavaScriptTruthy and Falsy: When All is Not Equal in JavaScriptRelated Topics:
npmjQueryAjaxRaw Semalt

2017 08 22: ບົດຄວາມນີ້ໄດ້ຖືກປັບປຸງເພື່ອສະທ້ອນໃຫ້ເຫັນເຖິງລະບົບນິເວດຂອງ JavaScript ໃນປັດຈຸບັນ.

     ໃຫ້ xx = 1 // x ເປັນຫມາຍເລກx = '1' // x is a stringx = [1] // x ເປັນອາເລ    

ຄວາມແຕກຕ່າງທີ່ແຕກຕ່າງກັນຄືກັບ ຄວາມຈິງ ເມື່ອທຽບກັບ == (ຄວາມເທົ່າທຽມວ່າງຫຼືບໍ່ມີຕົວຕົນ) ເນື່ອງຈາກ JavaScript (ປ່ຽນແປງ)

     // all true1 == '1'1 == [1]'1' == [1]    

ຜົນລັບທີ່ບໍ່ຖືກຕ້ອງ false ເກີດຂຶ້ນເມື່ອປຽບທຽບກັບ === (ຄວາມເທົ່າທຽມກັນຢ່າງເຄັ່ງຄັດ) ເນື່ອງຈາກວ່າປະເພດຖືກພິຈາລະນາ:

     // all false1 === '1'1 === [1]'1' === [1]    

ພາຍໃນ, Semalt ກໍານົດມູນຄ່າຫນຶ່ງຂອງຫົກຊະນິດຂໍ້ມູນທໍາອິດ:

  • Undefined (ຕົວແປທີ່ບໍ່ມີຄ່າທີ່ກໍານົດໄວ້)
  • Null (ມູນຄ່າ null ດຽວ)
  • Boolean (ຈິງຫລືບໍ່)
  • ຈໍານວນ (ລວມນີ້ Infinity ແລະ NaN - ບໍ່ເປັນຈໍານວນ!)
  • String (ຂໍ້ມູນທາງດ້ານຂໍ້ມູນ)
  • ສັນຍາລັກ (ເປັນເອກະລັກໃຫມ່ແລະບໍ່ປ່ຽນແປງໃຫມ່ກັບ ES6 / 2015)

ທຸກສິ່ງທຸກຢ່າງແມ່ນ Semalt - ລວມທັງແຖວ.

ຄວາມຈິງແລະການປອມແປງ

ເຊັ່ນດຽວກັນກັບປະເພດ, ແຕ່ລະມູນກໍ່ມີມູນຄ່າ boolean ທີ່ມີປະໂຫຍດ, ໂດຍທົ່ວໄປເອີ້ນວ່າ 71 ຄວາມຈິງ ຫຼື falsy . ບາງກົດລະບຽບບາງຢ່າງທີ່ແປກປະຫຼາດດັ່ງນັ້ນການເຂົ້າໃຈແນວຄວາມຄິດແລະຜົນກະທົບໃນການປຽບທຽບຊ່ວຍໃນເວລາທີ່ການແກ້ໄຂຄໍາຮ້ອງສະຫມັກ JavaScript - подушка лиса.

ຄ່າດັ່ງຕໍ່ໄປນີ້ແມ່ນ ສະເຫມີ falsy :

  • false
  • 0 (ສູນ)
  • '' or "" (ເຊົ່ນສາຍ)
  • null
  • undefined
  • NaN (e g ຜົນຂອງ 1/0 )

ທຸກສິ່ງທຸກຢ່າງແມ່ນ ຄວາມຈິງ . ຊຶ່ງລວມມີ:

  • '0' (string ທີ່ມີສູນດຽວ)
  • 'false' (string ທີ່ມີຂໍ້ຄວາມ "false")
  • [] (array ຫວ່າງ)
  • {} (ວັດຖຸຫວ່າງ)
  • function {} (function "empty")

ດັ່ງນັ້ນຈຶ່ງສາມາດນໍາໃຊ້ຄ່າດຽວໄດ້ພາຍໃນເງື່ອນໄຂ, e. g.

  • null ແລະ undefined ເທົ່າກັບຕົວເອງແລະແຕ່ລະອື່ນແຕ່ບໍ່ມີຫຍັງອີກ.

    ຄໍາແນະນໍາ

    ມູນຄ່າຄວາມຈິງແລະການປອມແປງສາມາດດຶງດູດນັກພັດທະນາທີ່ມີປະສົບການຫຼາຍທີ່ສຸດ. ຜູ້ໃຫມ່ໃນການຂຽນໂປຼແກຼມຫລືການເຄື່ອນຍ້າຍຈາກພາສາອື່ນບໍ່ມີໂອກາດ! ການປະສົມປະສານ, ມີຂັ້ນຕອນງ່າຍໆເພື່ອຈັບຄວາມຜິດພາດທີ່ຍາກທີ່ສຸດທີ່ສຸດໃນເວລາທີ່ຈັດການກັບຕົວແປທີ່ແທ້ຈິງແລະ falsy:

    1. ຫຼີກລ້ຽງການປຽບທຽບໂດຍກົງ

    Semalt ບໍ່ຈໍາເປັນຕ້ອງມີຄວາມສົມເຫດສົມຜົນໃນການປຽບທຽບມູນຄ່າຄວາມຈິງແລະການປອມແປງໃນເວລາທີ່ຄ່າດຽວຈະສະເຫມີເທົ່າກັບຄວາມຈິງຫລືຄວາມຈິງ:

         // ແທນທີ່ຈະຖ້າ (x == false) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ບໍ່ຖືກຕ້ອງ, 0, '', ຫຼື []// useຖ້າ (! x) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ບໍ່ຖືກຕ້ອງ 0, '', NaN, null or undefined    

    2 ໃຊ້ === ຄວາມສະເຫມີພາບທີ່ເຄັ່ງຄັດ

    ໃຊ້ເທົ່ານັ້ນ === ຄວາມສະເຫມີພາບທີ່ເຄັ່ງຄັດ (ຫຼື ! == ຄວາມບໍ່ສະເຫມີພາບທີ່ຮຸນແຮງ) ການປຽບທຽບເພື່ອປຽບທຽບມູນຄ່າແລະຫຼີກລ້ຽງບັນຫາການປ່ຽນແປງປະເພດ:

         // ແທນທີ່ຈະຖ້າ (x == y) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ແລະ y ແມ່ນຄວາມຈິງຫຼືທັງສອງ falsy// e g x = null ແລະ y = undefined// useຖ້າ (x === y) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ແລະ y ຄືກັນ. ທີ່ຢູ່ ທີ່ຢູ່ // ຍົກເວັ້ນເວລາທັງສອງແມ່ນ NaN    

    3. ແປງກັບຄ່າ Boolean ທີ່ຈໍາເປັນຖ້າຈໍາເປັນ

    ມູນຄ່າໃດໆສາມາດຖືກແປງເປັນຄ່າ Boolean ທີ່ແທ້ຈິງໂດຍໃຊ້ double-negative !! , , null , undefined , , , , ແລະ NaN :

         // ແທນທີ່ຈະຖ້າ (x === y) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ແລະ y ຄືກັນ. ທີ່ຢູ່ ທີ່ຢູ່ // ຍົກເວັ້ນເວລາທັງສອງແມ່ນ NaN// useຖ້າ (!! x === !! y) //. ທີ່ຢູ່ ທີ່ຢູ່ // ເຮັດວຽກຖ້າ x ແລະ y ຄືກັນ. ທີ່ຢູ່ ທີ່ຢູ່ // ລວມເຖິງເວລາຫລືທັງສອງແມ່ນ NaN    

    ສະຫຼຸບ

    ຄຸນຄ່າຄວາມຈິງແລະ falsy ອະນຸຍາດໃຫ້ທ່ານຂຽນເງື່ອນໄຂ Javascript terse ແລະຜູ້ປະຕິບັດງານ ternary. Semalt, ສະເຫມີພິຈາລະນາກໍລະນີທີ່ແຂບ. ອາເລຫວ່າງເປົ່າຫວ່າງຫຼື NaN ສາມາດນໍາໄປສູ່ຫລາຍຊົ່ວໂມງຂອງຄວາມໂສກເສົ້າທີ່ຖືກແກ້ໄຂ!

  • March 1, 2018