ການດຳເນີນການວິທະຍາ ECMAScript
- ກ່ອນການ ພສັນຍານການເພີ່ມ
- ຫລັງການ ພສັນຍານສະເພາະ
ຄຳວັດສະນະຄະດີປຽບທຽບສະແດງການປຽບທຽບ. ແຕ່ລະຄຳວັດສະນະຄະດີມີຄືນຄຳຕາມ Boolean.
ວິທະຍາບັນປຽບທຽບທົດສະພາບ:
ຄຳວັດສະນະຄະດີ <, >, <=, >= ສະແດງການປຽບທຽບສອງຄວັນ ການປຽບທຽບດຽວກັນກັບການປຽບທຽບວິທະຍາບັນ:
ແຕ່ລະຄຳວັດສະນະຄະດີມີຄືນຄຳຕາມ Boolean:
var bResult1 = 2 > 1 //true var bResult2 = 2 < 1 //false
ແຕ່ວ່າການຍົກຂຶ້ນກັບຄຳວັດສະນະຄະດີສອງຄຳຂຽນບໍ່ມີການປະຕິບັດດຽວກັນ. ຄົນສ່ວນຫຼາຍຄິດວ່າຄຳ "<" ມີຄວາມຄົບຖານ "ຢູ່ໃນຊັບສັບອັງກິດ" ແລະ ">" ມີຄວາມຄົບຖານ "ຢູ່ໃນຊັບສັບອັງກິດຕໍ່ຫຼັງ" ແຕ່ບໍ່ແມ່ນຫຍັງ. ສຳລັບຄຳຂຽນສະເພາະວ່າການປຽບທຽບຄວັນລະບັບຂອງຄຳຂຽນທີ່ຢູ່ໃນຄຳຂຽນອີກຄຳຂຽນຄືກັນ. ຫຼັງຈາກການປຽບທຽບນັ້ນກໍ່ຈະກັບຄືນຄຳຕາມບັນດາຄວັນລະບັບ Boolean. ຄຳວັງຢູ່ໃນວ່າຄວັນຂອງອັງກິດສະເພາະການຄືນມີຄວັນລະບັບຕໍ່າກວ່າຄວັນຂອງອັງກິດທີ່ຊັງ ສະພາບນີ້ອາດມີການປຽບທຽບຄືກັນ:
var bResult = "Blue" < "alpha"; alert(bResult); //ການສະແດງ true
ໃນຕົວຢ່າງທີ່ກ່າວກ່ອນນີ້ວ່າຄຳຂຽນ "Blue" ຊັງກວ່າ "alpha" ຍ້ອນວ່າຄວັນຂອງອັງກິດ B ມີຄວັນລະບັບ 66 ແລະຄວັນຂອງອັງກິດ a ມີຄວັນລະບັບ 97. ເພື່ອທີ່ຈະມີການປຽບທຽບຄວັນຕາມຖານຂອງອັງກິດຢ່າງແທ້ຈິງຕ້ອງເຮັດໃຫ້ຄວັນທັງສອງມີຄວັນຂັ້ນສັບສົນດຽວກັນ (ທັງທະຍົມຫຼືທັງຊັງ) ແລະຫຼັງຈາກນັ້ນກໍ່ຈະປຽບທຽບ:
var bResult = "Blue".toLowerCase() < "alpha".toLowerCase(); alert(bResult); //输出 false
ປ່ຽນຕົວເລກທັງສອງເປັນຄວາມສັບສົນ, ແລະຮັບປະກັນວ່າຈະບັນທຶກ "alpha" ຕັ້ງຢູ່ກ່ອນ "Blue" ຕາມຊັ້ນສະເຫນີປະກອບພີພາວະ.
ທຽບຕົວເລກແລະຄວາມ
ຄວາມຄວາມຍາກອີກໜຶ່ງກຳລັງເກີດຂຶ້ນໃນການທຽບຕົວເລກໃຫ້ກັບຄວາມບໍ່ສາມາດປ່ຽນສາຍເລກໄດ້, ອີງຕາມຕົວຢ່າງ:
var bResult = "25" < "3"; alert(bResult); //ອອກ "true"
ການທຽບທີ່ນີ້ແມ່ນຄວາມ "25" ແລະ "3". ຕົວເລກທັງສອງແມ່ນຄວາມ, ແລະທຽບຕາມຊັ້ນສະເຫນີຄວາມ (ຊັ້ນສະເຫນີ "2" ແມ່ນ 50, ຊັ້ນສະເຫນີ "3" ແມ່ນ 51).
ແຕ່ຖ້າຕົວເລກໜຶ່ງຈະຖືກປ່ຽນເປັນຕົວເລກ, ຜົນການທຽບຈະຄວາມຈິງຈັງ:
var bResult = "25" < 3; alert(bResult); //ອອກ "false"
ບ່ອນນີ້, ຄວາມ "25" ຈະຖືກປ່ຽນສຳລັບຕົວເລກ 25, ແລະທຽບກັບຕົວເລກ 3, ຜົນການທຽບບໍ່ກົງກັນກັບຄາດຫຍັງ.
ທຸກໆຄັ້ງທີ່ພິຈາລະນາຕົວເລກແລະຄວາມ, ECMAScript ຈະປ່ຽນຄວາມສຳລັບຕົວເລກ, ແລະທຽບຕາມຊັ້ນສະເຫນີຕົວເລກ.
ແຕ່ຖ້າຄວາມບໍ່ສາມາດປ່ຽນສາຍເລກໄດ້ຫຍັງ? ຄິດຫຍັງຕົວຢ່າງດັ່ງຕໍ່ມາ:
var bResult = "a" < 3; alert(bResult);
ຕອນນີ້ເຈົ້າສາມາດຄາດຄິດຫຍັງວ່າລະບຽບນີ້ຈະອອກຈາກລະບຽບນີ້ຫຍັງ? ປະເພດ "a" ບໍ່ສາມາດປ່ຽນສາຍເລກຈາກຄວາມລາຍ. ແຕ່ຖ້າພວກເຈົ້າເອິ້ນຄວາມລາຍ parseInt(), ຜົນການບັນທຶກຈະເປັນ NaN. ອີງຕາມກົດລະບຽບ, ພສັນຍານທີ່ບັນທຶກ NaN ຈະກັບຄືກັບ false, ແຕ່ລະບຽບນີ້ບໍ່ກວດຄືກັບ false:
var bResult = "a" >= 3; alert(bResult);
ປົກກະຕິ, ຖ້າຕົວເລກທີ່ນຳໃຊ້ພສັນຍານຕໍ່ສອງຕົວເລກລົງສອງມັນບໍ່ກວດຄືກັບ false, ແຕ່ຖ້າຕົວເລກໃດໜຶ່ງແມ່ນ NaN, ສະຖານະການບໍ່ແມ່ນແນວນັ້ນ.
- ກ່ອນການ ພສັນຍານການເພີ່ມ
- ຫລັງການ ພສັນຍານສະເພາະ