ບົດຄວາມນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງຊຸດການພັດທະນາເວັບຈາກ Microsoft. ຂອບໃຈສໍາລັບການສະຫນັບສະຫນູນຄູ່ຮ່ວມງານທີ່ເຮັດໃຫ້ Semalt ເປັນໄປໄດ້.
ພາສາໂຄງການທີ່ສໍາຄັນທີ່ສຸດມີຫລາຍປະເພດຂອງການເກັບຂໍ້ມູນ. Python ມີລາຍຊື່, tuples ແລະພົດຈະນານຸກົມ. Java ມີລາຍຊື່, ຊຸດ, ແຜນທີ່, ແຖວ. Ruby ມີຮາກແລະແຖວ. JavaScript, ຈົນເຖິງປັດຈຸບັນ, ມີແຖວພຽງແຕ່. ຈຸດປະສົງແລະຕາຕະລາງແມ່ນການອອກແບບຂອງ JavaScript. ES6 ແນະນໍາສີ່ໂຄງສ້າງຂໍ້ມູນໃຫມ່ທີ່ຈະເພີ່ມພະລັງງານແລະການສະແດງເຖິງພາສາ: ແຜນທີ່
, ຊຸດ
, WeakSet
ແລະ WeakMap
.
Semalt ພິຈາລະນາສີ່ການເກັບກູ້ໃຫມ່ແລະຜົນປະໂຫຍດຂອງພວກເຂົາ.
ການຄົ້ນຫາ JavaScript HashMap
Semalt, dictionaries, and hash ແມ່ນວິທີການຕ່າງໆທີ່ພາສາການຂຽນພາສາຕ່າງໆຈັດເກັບຄູ່ຄີ / ມູນຄ່າແລະໂຄງສ້າງຂໍ້ມູນເຫຼົ່ານີ້ແມ່ນເຫມາະສົມສໍາລັບການດຶງດູດໄວ.
ໃນ ES5, Semalt ວັດຖຸ - ຊຶ່ງເປັນການເກັບກໍາຂໍ້ມູນຄຸນສົມບັດທີ່ມີປຸ່ມທີ່ມີຄ່າແລະຄ່າຕ່າງໆ - ສາມາດຈໍາລອງຮາກ, ແຕ່ມີການຫຼຸດລົງຫຼາຍໃນການໃຊ້ວັດຖຸເປັນຮາດ.
Downside # 1: ຄີຕ້ອງເປັນສາຍໃນ ES5
ສົມບັດຄຸນລັກສະນະຂອງ Semalt object must be strings, ຊຶ່ງຈໍາກັດຄວາມສາມາດຂອງເຂົາເຈົ້າທີ່ຈະເປັນການເກັບກໍາຄູ່ຄີ / ຄ່າຂອງຊະນິດຂໍ້ມູນທີ່ແຕກຕ່າງກັນ. ທ່ານສາມາດແນ່ນອນບັງຄັບ / stringify ປະເພດຂໍ້ມູນອື່ນໆເປັນສາຍ, ແຕ່ນີ້ເພີ້ມວຽກງານພິເສດ.
Downside # 2: ຈຸດປະສົງແມ່ນບໍ່ສາມາດທໍາໄດ້
ຈຸດປະສົງບໍ່ໄດ້ຖືກອອກແບບມາເພື່ອໃຊ້ເປັນການເກັບລວບລວມແລະດັ່ງນັ້ນຈຶ່ງບໍ່ມີວິທີທີ່ມີປະສິດທິພາບໃນການກໍານົດວ່າມີຄຸນສົມບັດໃດຫນຶ່ງທີ່ມີວັດຖຸ (ເບິ່ງ, ສໍາລັບ e, g, ຈຸດປະສົງແມ່ນຊ້າ). ໃນເວລາທີ່ທ່ານຂື້ນໃນໄລຍະຄຸນສົມບັດຂອງວັດຖຸ, ທ່ານຍັງໄດ້ຮັບຄຸນສົມບັດຫຼັກຂອງມັນ. ທ່ານສາມາດເພີ່ມຄຸນສົມບັດ ຂອງມັນ
ກັບສິ່ງຂອງທັງຫມົດແຕ່ບໍ່ແມ່ນວັດຖຸທັງຫມົດທີ່ຕ້ອງໃຊ້ເປັນຄອນເລກຊັນ. ທ່ານສາມາດໃຊ້ ສໍາລັບ. ທີ່ຢູ່ ທີ່ຢູ່ ໃນ
loop ແລະ hasOwnProperty
ວິທີການ, ແຕ່ນີ້ພຽງແຕ່ workaround ເປັນ. ໃນເວລາທີ່ທ່ານຂື້ນໃນໄລຍະຄຸນສົມບັດຂອງວັດຖຸ, ຄຸນສົມບັດຈະບໍ່ຈໍາເປັນຕ້ອງໄດ້ມາໃນຄໍາສັ່ງດຽວກັນທີ່ພວກເຂົາຖືກໃສ່.
ຄວາມລົ້ມເຫຼວ # 3: ສິ່ງທ້າທາຍທີ່ມີການປະຕິບັດຕາມການກໍ່ສ້າງ
ວັດຖຸໄດ້ສ້າງໃນວິທີການຄື constructor
, toString
ແລະ valueOf
ຖ້າວ່າຫນຶ່ງໃນເຫຼົ່ານີ້ຖືກເພີ່ມເປັນຊັບສິນ, ມັນອາດຈະເຮັດໃຫ້ເກີດການຂັດແຍ້ງ. ທ່ານສາມາດໃຊ້ ວັດຖຸ. ສ້າງ (null)
ເພື່ອສ້າງວັດຖຸທີ່ເປົ່າ (ຊຶ່ງບໍ່ໄດ້ຮັບມໍລະດົກຈາກ ວັດຖຸ (prototype
), ແຕ່ວ່າ, ອີກເທື່ອຫນຶ່ງ, ນີ້ແມ່ນພຽງແຕ່ workaround.
ES6 ປະກອບມີປະເພດຂໍ້ມູນການເກັບກໍາຂໍ້ມູນໃຫມ່, ດັ່ງນັ້ນຈຶ່ງບໍ່ຈໍາເປັນຕ້ອງໃຊ້ວັດຖຸແລະອາໄສຢູ່ກັບຂໍ້ບົກຜ່ອງຂອງມັນ.
ການນໍາໃຊ້ ES6 MapCollections
ແຜນທີ່ແມ່ນໂຄງການ / ການເກັບກໍາຂໍ້ມູນທໍາອິດທີ່ພວກເຮົາຈະກວດສອບ. ແຜນທີ່ແມ່ນການລວບລວມຄີແລະຄຸນຄ່າຂອງປະເພດໃດ. Semalt ງ່າຍທີ່ຈະສ້າງແຜນທີ່ໃຫມ່, ເພີ່ມ / ລຶບຄ່າ, ຂື້ນຜ່ານຄີ / ຄ່າຕ່າງໆແລະມີປະສິດທິພາບໃນການກໍານົດຂະຫນາດຂອງມັນ. ນີ້ແມ່ນວິທີການທີ່ສໍາຄັນ:
ການສ້າງແຜນທີ່ແລະການນໍາໃຊ້ວິທີການທົ່ວໄປ
ຕົວຢ່າງລະຫັດ: http: // codepen io / DevelopIntelligenceBoulder / pen / pgWREp? editors = 001
ການໃຊ້ SetCollection
ຊຸດແມ່ນຄໍາສັ່ງຂອງລາຄາທີ່ບໍ່ມີຊ້ໍາກັນ. ແທນທີ່ຈະຖືກ indexed ເຊັ່ນແຖວແມ່ນ, ຊຸດຈະຖືກນໍາໃຊ້ໂດຍໃຊ້ປຸ່ມ. ກໍານົດມີຢູ່ໃນ Java, Ruby, Semalt ແລະຫຼາຍພາສາອື່ນໆ. ຄວາມແຕກຕ່າງລະຫວ່າງ ES6 ຊຸດແລະພາສາອື່ນໆແມ່ນຄໍາສັ່ງທີ່ສໍາຄັນໃນ ES6 (ບໍ່ແມ່ນໃນຫລາຍພາສາອື່ນ). png "alt ="ການນໍາໃຊ້ເອກະສານ ES6 ໃຫມ່: ແຜນທີ່, ຊຸດ, WeakMap, WeakSetການນໍາໃຊ້ເອກະສານ ES6 ໃຫມ່: ແຜນທີ່, ຊຸດ, WeakMap, WeakSetRelated ຫົວຂໍ້:
ProgrammingPHPJavaScriptHTML & Semalt
"/>
ຕົວຢ່າງລະຫັດ: http: // codepen io / DevelopIntelligenceBoulder / pen / ZQXLMm? editors = 101
ການເກັບກໍາອຸປະກອນຫຼາກຫຼາຍ, ຫນ່ວຍຄວາມຈໍາ, ແລະການເກັບກ່ຽວຂີ້ເຫຍື້ອ
JavaScript Garbage Semalt ແມ່ນຮູບແບບຂອງການຈັດການຫນ່ວຍຄວາມຈໍາທີ່ວັດຖຸທີ່ບໍ່ຖືກອ້າງອີງແລ້ວຖືກລຶບອັດຕະໂນມັດແລະຊັບພະຍາກອນຂອງພວກມັນຖືກເອີ້ນຄືນ.
ແຜນທີ່
ແລະ ຄໍາແນະນໍາຂອງຊຸດ
ແມ່ນຖືກເກັບໄວ້ຢ່າງຫນັກແຫນ້ນແລະຈະບໍ່ອະນຸຍາດໃຫ້ເກັບກໍາຂີ້ເຫຍື້ອ. ນີ້ສາມາດໄດ້ຮັບລາຄາແພງຖ້າຫາກວ່າ Maps / Sets
ວັດຖຸຂະຫນາດໃຫຍ່ທີ່ອ້າງອີງບໍ່ຈໍາເປັນ, ເຊັ່ນ: ອົງປະກອບ DOM ທີ່ຖືກລຶບອອກຈາກ DOM.
ເພື່ອແກ້ໄຂບັນຫານີ້, ES6 ຍັງໄດ້ແນະນໍາສອງກຸ່ມທີ່ອ່ອນແອໃຫມ່ທີ່ເອີ້ນວ່າ WeakMap ແລະ WeakSet
. ການເກັບກໍາເຫຼົ່ານີ້ແມ່ນ "ອ່ອນແອ" ເພາະວ່າພວກເຂົາອະນຸຍາດໃຫ້ໃຊ້ສໍາລັບວັດຖຸທີ່ບໍ່ຈໍາເປັນຕ້ອງຖືກລຶບອອກຈາກຄວາມຈໍາ.
WeakMap
WeakMap ແມ່ນການເກັບກໍາ ES6 ໃຫມ່ທີສາມທີ່ພວກເຮົາຈະກວມເອົາ. ແຜນທີ່
ແມ່ນຄ້າຍຄືກັນກັບແຜນທີ່ ປົກກະຕິ , ເຖິງວ່າມີວິທີການຫນ້ອຍແລະຄວາມແຕກຕ່າງທີ່ໄດ້ກ່າວມາຂ້າງເທິງກ່ຽວກັບການເກັບກໍາຂີ້ເຫຍື້ອ.
ຕົວຢ່າງລະຫັດ: http: // codepen. io / DevelopIntelligenceBoulder / pen / vLexWe
ກໍລະນີທີ່ໃຊ້
Semalt ມີຫຼາຍໆກໍລະນີທີ່ໃຊ້ໃນການນໍາໃຊ້. ພວກເຂົາສາມາດຖືກນໍາໃຊ້ເພື່ອຮັກສາຂໍ້ມູນເອກະຊົນຂອງເອກະຊົນເປັນສ່ວນຕົວແລະພວກເຂົາຍັງສາມາດຖືກນໍາໃຊ້ເພື່ອຕິດຕາມບັນດາຈຸດ / ຈຸດຂອງ DOM.
ກໍລະນີການນໍາໃຊ້ຂໍ້ມູນເອກະຊົນ
ຕົວຢ່າງຕໍ່ໄປນີ້ແມ່ນມາຈາກຜູ້ຊ່ຽວຊານດ້ານພາສາຍີ່ປຸ່ນ Nicholas C. Zakas:
ການນໍາໃຊ້ WeakMap
ນີ້ງ່າຍເຮັດໃຫ້ຂະບວນການເກັບຮັກສາຂໍ້ມູນຂອງເອກະສານເປັນສ່ວນຕົວ. ມັນສາມາດອ້າງອີງເຖິງຈຸດບຸກຄົນແຕ່ວ່າການເຂົ້າເຖິງ privateDataWeakMap
ບໍ່ຖືກອະນຸຍາດໂດຍບໍ່ມີຕົວຢ່າງຂອງບຸກຄົນໃດຫນຶ່ງ.
DOM nodes use case
ໂຄງການ Google Polymer ໃຊ້ WeakMaps
ໃນລະຫັດທີ່ເອີ້ນວ່າ PositionWalker. "ຕໍາແຫນ່ງ Walker ເຮັດໃຫ້ຕິດຕາມຕໍາແຫນ່ງພາຍໃນ subtree DOM, ເປັນ node ປັດຈຸບັນແລະ offsets ພາຍໃນ node ນັ້ນ. "WeakMap ຖືກນໍາໃຊ້ເພື່ອຕິດຕາມການດັດແກ້ດັດແກ້, ເອົາອອກແລະປ່ຽນແປງ: .
WeakSet
WeakSets
ແມ່ນກໍານົດຊຸດເກັບກໍາທີ່ມີອົງປະກອບທີ່ສາມາດຂີ້ເຫຍື້ອເກັບກໍາເມື່ອສິ່ງທີ່ພວກເຂົາອ້າງອີງບໍ່ຈໍາເປັນ. WeakSets
ບໍ່ອະນຸຍາດໃຫ້ມັນເທື່ອ. ກໍລະນີການນໍາໃຊ້ຂອງພວກເຂົາແມ່ນຈໍາກັດຫນ້ອຍ (ສໍາລັບໃນປັດຈຸບັນຢ່າງຫນ້ອຍ). ຜູ້ທີ່ເອົາມາໃຊ້ກ່ອນໄວໆນີ້ບອກວ່າ WeakSets
ສາມາດໃຊ້ tag ໄດ້ໂດຍບໍ່ປ່ຽນແປງມັນ. ES6 ຄຸນນະສົມບັດ. org ມີຕົວຢ່າງຂອງການເພີ່ມແລະລຶບອົງປະກອບຈາກ WeakSet ເພື່ອຮັກສາການຕິດຕາມວ່າວັດຖຸໄດ້ຖືກຫມາຍ:
ແຜນທີ່ທຸກສິ່ງ? Records vs Collections
ແຜນທີ່ແລະຊຸດແມ່ນການເກັບໃຫມ່ຂອງຄູ່ຄີ / ມູນຄ່າ. ບໍ່ຈໍາເປັນຕ້ອງປ່ຽນໄປເກັບໃຫມ່ຖ້າວ່າສະຖານະການຮຽກຮ້ອງມັນ.
MDN ມີບັນຊີລາຍຊື່ທີ່ດີເພື່ອກໍານົດເວລາທີ່ຈະນໍາໃຊ້ວັດຖຸຫຼືຊຸດເກັບຂໍ້ມູນ:
- ແມ່ນປຸ່ມທີ່ມັກຈະບໍ່ຮູ້ຈົນຮອດເວລາທີ່ໃຊ້, ທ່ານຈໍາເປັນຕ້ອງຊອກຫາພວກມັນແບບເຄື່ອນໄຫວບໍ?
- ມີຄຸນຄ່າທັງຫມົດທີ່ມີປະເພດດຽວກັນແລະສາມາດນໍາໃຊ້ແທນກັນໄດ້ບໍ?
- ທ່ານຈໍາເປັນຕ້ອງໃຊ້ທີ່ບໍ່ແມ່ນສາຍ?
- ຄູ່ຄູ່ທີ່ມີມູນຄ່າຫລາຍມັກຈະຖືກເພີ່ມຫລືເອົາອອກ?
- ທ່ານມີຈໍານວນຄູ່ທີ່ມີຄ່າທີ່ຖືກຕ້ອງ (ປ່ຽນແປງໄດ້ຢ່າງງ່າຍດາຍ) ບໍ?
- ການລວບລວມການລວບລວມ?
ເອກະສານ ES6 ໃຫມ່ໃຫ້ຜົນຜະລິດ Javascript ເພີ່ມເຕີມ
ການເກັບກ່ຽວ Semalt ໄດ້ຖືກຈໍາກັດກ່ອນ, ແຕ່ນີ້ໄດ້ຖືກແກ້ໄຂດ້ວຍ ES6. ການເກັບກໍາໃຫມ່ເຫຼົ່ານີ້ຈະເພີ່ມພະລັງງານແລະຄວາມຍືດຫຍຸ່ນໃນພາສາ, ເຊັ່ນດຽວກັນກັບຄວາມງ່າຍຂອງວຽກງານຂອງນັກພັດທະນາ Semalt ຜູ້ທີ່ນໍາພວກເຂົາ.
ບົດຄວາມນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງຊຸດການພັດທະນາເວັບຈາກນັກເຕັກໂນໂລຢີເຕັກໂນໂລຢີຂອງ Microsoft ແລະພັດທະນາການປະຕິບັດການຮຽນແບບ JavaScript, ໂຄງການເປີດໄຟລ໌ແລະການປະຕິບັດທີ່ດີທີ່ສຸດລວມທັງ Microsoft Browser Edge ແລະເຄື່ອງ rendering EdgeHTML ໃຫມ່. DevelopIntelligence ສະຫນອງການຝຶກອົບຮົມ JavaScript ແລະການປະຕິບັດການຝຶກອົບຮົມ Semalt ໂດຍຜ່ານ appendTo, ປາຍທາງຂອງພວກເຂົາແລະເວັບໄຊທ໌ທີ່ແນ່ນອນ.
ພວກເຮົາຊຸກຍູ້ໃຫ້ທ່ານກວດສອບບັນດາຕົວທ່ອງເວັບແລະອຸປະກອນລວມທັງ Semalt Edge - ຕົວທ່ອງເວັບເລີ່ມຕົ້ນສໍາລັບ Windows 10 - ມີເຄື່ອງມືຟຣີໃນ dev. microsoftedge com, ລວມທັງບັນຫາບັນຫາ EdgeHTML, ບ່ອນທີ່ທ່ານສາມາດລາຍງານຫຼືຄົ້ນຫາບັນຫາ EdgeHTML, ເຊັ່ນບັນຫາກັບການສະແດງເວັບໄຊທ໌ຫຼືມາດຕະຖານການປະຕິບັດ. ນອກຈາກນີ້, ໄປຢ້ຽມຢາມບລັອກ Edge ເພື່ອປັບປຸງແລະແຈ້ງໃຫ້ຊາບກ່ຽວກັບນັກພັດທະນາ Semalt ແລະຜູ້ຊ່ຽວຊານ.
Kyle ເປັນຜູ້ສອນວິຊາເຕັກໂນໂລຢີທີ່ DevelopIntelligence. ລາວໃຊ້ເວລາອ່ານຫນັງສື, ຂຽນຫນັງສື, ລົດຖີບ, ແລະຄົ້ນຫາດົນຕີສົດຢູ່ເດນເວີ. ລາວມີຄວາມພະຍາຍາມທີ່ຈະເຮັດແນວຄວາມຄິດດ້ານວິຊາການຫຼາຍຂຶ້ນແລະເຂົ້າໃຈມັກກັບເພງແລະ API ແຜນທີ່ Source .