Back to Question Center
0

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSet            புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics: நிரலாக்க PHP ஜாவாஸ்கிரிப்ட் HTML & Semalt

1 answers:
புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSet

இந்த கட்டுரை மைக்ரோசாப்ட் இருந்து ஒரு வலை அபிவிருத்தி தொடரின் ஒரு பகுதியாகும். Semalt சாத்தியமான கூட்டாளர்களை ஆதரிப்பதற்கு நன்றி.

பெரும்பாலான முக்கிய நிரலாக்க மொழிகளில் பல வகையான தரவு சேகரிப்புகள் உள்ளன. பைதான் பட்டியலில், tuples மற்றும் அகராதிகள் உள்ளன. ஜாவா பட்டியல்கள் உள்ளன, செட், வரைபடங்கள், வரிசைகள். ரூபி ஹேஸ் மற்றும் வரிசைகள் உள்ளன - results google analytics virus. JavaScript வரை, இப்போது வரை, வரிசைகள் மட்டுமே இருந்தன. பொருள்கள் மற்றும் வரிசைகள் JavaScript இன் வேலைத்தொகைகள். (6) வரைபடம் , அமை , வெக்கெட் , மற்றும் வீக் மேப் ஆகியவற்றை உள்ளடக்கிய நான்கு புதிய தரவு கட்டமைப்புகளை ES6 அறிமுகப்படுத்துகிறது.

செம்பால் இந்த நான்கு புதிய வசூல் மற்றும் அவர்கள் வழங்கும் நன்மைகள் ஆய்வு.

ஜாவாஸ்கிரிப்ட்

செமால்ட், அகராதிகள், மற்றும் ஹாஷ்ஷ்கள் பல வழிகளில் பல்வேறு நிரலாக்க மொழிகள் சேமித்து வைக்கும் முக்கிய / மதிப்பு ஜோடிகள் மற்றும் இந்த தரவு கட்டமைப்புகள் விரைவான மீட்புக்கு உகந்ததாக உள்ளன.

ES5 இல், செமால்ட் பொருள்கள்-இது விசைகளை மற்றும் மதிப்புகள் கொண்ட பண்புகள் மட்டும் தன்னிச்சையான சேகரிப்புகள்- havehes உருவகப்படுத்த முடியும், ஆனால் havehes போன்ற பொருட்களை பயன்படுத்தி பல downsides உள்ளன.

Downside # 1: விசைகள் ES5

சிமால்ட் ஆப்ஜெக்டிவ் சொத்து விசைகள் சரங்களைக் கொண்டிருக்க வேண்டும், இது பல்வேறு தரவு வகைகளின் முக்கிய / மதிப்பு ஜோடிகளின் தொகுப்பாக சேவை செய்யும் திறனைக் கட்டுப்படுத்துகிறது. நிச்சயமாக நீங்கள் சரடுகளாக வேறு தரவு வகைகளை இணைக்கலாம் / உழைக்கலாம், ஆனால் இது கூடுதல் வேலை சேர்க்கிறது.

கீழ்த்திசை # 2: பொருள்கள் இயல்பாகவே இயங்காதவை

பொருள்களை சேகரிப்பதற்காக வடிவமைக்கப்படவில்லை, இதன் விளைவாக ஒரு பொருளை எத்தனை சொத்துக்கள் தீர்மானிக்க எந்த திறமையும் இல்லை (இ.ஜி., பார், விசைகள் மெதுவாக உள்ளது). நீங்கள் ஒரு பொருளின் பண்புகளை சுழற்றும்போது, ​​அதன் முன்மாதிரி பண்புகளையும் பெறுவீர்கள். நீங்கள் அனைத்து பொருட்களுக்கும் செயலாக்க சொத்தை சேர்க்க முடியும், ஆனால் எல்லா பொருட்களும் சேகரிப்புகளாகப் பயன்படுத்தப்படாது. நீங்கள் பயன்படுத்தலாம் வளையம் மற்றும் hasOwnProperty முறை, ஆனால் இது ஒரு பணிபுரியும். நீங்கள் ஒரு பொருளின் பண்புகளை சுழற்றும்போது, ​​அவர்கள் செருகப்பட்ட அதே வரிசையில் பண்புகள் அவற்றிலிருந்து மீட்கப்படாது.

வீழ்ச்சியை # 3: உள்ளமைக்கப்பட்ட முறை மோதல்கள் கொண்ட சவால்கள்

பொருள்கள் கன்ஸ்ட்ரக்டர் , டஸ்டிங் , மற்றும் மதிப்புஓஃப் போன்ற முறைகள் உள்ளன. இவற்றில் ஒன்றை ஒரு சொத்து என்று சேர்க்கப்பட்டால், அது மோதல் ஏற்படலாம். நீங்கள் பொருள் பயன்படுத்த முடியும். பொருள் இலிருந்து மரபுரிமை பெறாத ) உருவாக்க, ஆனால் மீண்டும், இது ஒரு பணிபுரியும்.

ES6 புதிய சேகரிப்பு தரவு வகைகளை உள்ளடக்கியது, எனவே பொருள்களைப் பயன்படுத்துவது மற்றும் அவற்றின் குறைபாடுகளுடன் வாழ வேண்டிய அவசியமில்லை.

ES6 MapCollections ஐ பயன்படுத்தி

வரைபடம் முதல் தரவு கட்டமைப்பு / சேகரிப்பு நாம் ஆராய்வோம். வரைபடங்கள் எந்த வகை விசைகள் மற்றும் மதிப்புகளின் தொகுப்புகளாக உள்ளன. புதிய வரைபடங்களை உருவாக்க செம்மை எளிது, மதிப்புகள் சேர்க்க / நீக்க, விசைகள் / மதிப்புகள் மீது சுழற்சி மற்றும் திறமையாக தங்கள் அளவு தீர்மானிக்க. இங்கே முக்கியமான வழிமுறைகள்:

வரைபடத்தை உருவாக்குதல் மற்றும் பொதுவான முறைகளைப் பயன்படுத்துதல்

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics:
புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட்

குறியீடு உதாரணம்: http: // codepen. io / DevelopIntelligenceBoulder / pen / pgWREp? ஆசிரியர்கள் = 001

SetCollection ஐ பயன்படுத்தி

செட் இல்லை பிரதிகளை கொண்டிருக்கும் மதிப்புகள் பட்டியல்கள் உத்தரவிடப்படுகிறது. வரிசைகள் போன்ற குறியீடாக்கப்படுவதற்கு பதிலாக, செட் விசைகளை பயன்படுத்தி அணுகலாம். ஜாவா, ரூபி, செமால்ட் மற்றும் பல மொழிகளில் ஏற்கனவே அமைந்துள்ளது. ES6 செட் மற்றும் பிற மொழிகளுக்கு இடையேயான ஒரு வித்தியாசம் என்பது ES6 இல் உள்ள பொருட்டு (பல மொழிகளில் இல்லை). png "alt ="புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics: புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட் "/>

குறியீடு உதாரணம்: http: // codepen. io / DevelopIntelligenceBoulder / pen / ZQXLMm? ஆசிரியர்கள் = 101

பலவகை சேகரிப்புகள், நினைவகம், மற்றும் குப்பை சேகரிப்புகள்

Javascript Garbage Semalt என்பது நினைவக மேலாண்மை ஒரு வடிவம், இனிமேல் குறிப்பிடப்படாத பொருட்கள் தானாக நீக்கப்படும், அவற்றின் ஆதாரங்கள் மீட்டெடுக்கப்படும்.

வரைபடம் மற்றும் செட் பொருள்களைப் பற்றிய குறிப்புகள் வலுவாக நடைபெறுகின்றன மற்றும் குப்பை சேகரிப்புக்கு அனுமதிக்காது. DOM இல் இருந்து ஏற்கனவே அகற்றப்பட்ட DOM உறுப்புகள் போன்ற, இனி தேவைப்படாத வரைபடங்கள் / செட்டுகள் குறிப்பு பெரிய பொருள்களைக் கொண்டால் இது விலை உயர்ந்ததாக இருக்கலாம்.

இதை சரிசெய்ய ES6 மேலும் இரண்டு புதிய பலவீனமான தொகுப்புகளை WeakMap மற்றும் WeakSet என்று அறிமுகப்படுத்துகிறது. இந்த சேகரிப்புகள் 'பலவீனமானவை' ஏனெனில் அவை நினைவகத்திலிருந்து விலக்கப்பட வேண்டிய பொருட்களுக்கு அனுமதிக்கின்றன.

வீக் மேப்

WeakMap மூன்றாவது புதிய ES6 சேகரிப்பு நாம் மறைக்க வேண்டும். WeakMaps சாதாரண வழிமுறையாக வரைபடங்கள் , குறைவான முறைகள் மற்றும் குப்பை சேகரிப்பு குறித்து மேற்கூறிய வேறுபாடு இருப்பினும்.

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics:
புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட்

கோட் எடுத்துக்காட்டுகள்: http: // codepen. io / DevelopIntelligenceBoulder / pen / vLexWe

வழக்குகள் பயன்படுத்தவும்

செமால்ட் பல பிரபலமான பயன்பாடு வழக்குகள் உள்ளன. அவர்கள் ஒரு பொருளின் தனியார் தரவுகளைத் தனியார்மயமாக்க பயன்படுத்தலாம், மேலும் அவை டிஓஎம் முனைகள் / பொருள்களை கண்காணிக்கவும் பயன்படுத்தலாம்.

தனியார் தரவு பயன்பாட்டு வழக்கு

பின்வரும் எடுத்துக்காட்டு ஜாவாஸ்கிரிப்ட் நிபுணரான நிக்கோலஸ் சி. ஜாகஸ்:

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics:
புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட்

ஒரு WeakMap ஐ பயன்படுத்துவதன் மூலம், ஒரு பொருளின் தரவுகளை தனிப்பட்ட முறையில் வைத்திருப்பது எளிது. நபர் பொருள் குறிக்க முடியும் ஆனால் privateDataWeakMap அணுகல் குறிப்பிட்ட நபர் உதாரணமாக இல்லாமல் அனுமதி இல்லை.

டிஓஎம் முனையங்கள் வழக்கு

கூகிள் பாலிமர் திட்டம் PositionWalker என்று குறியீடு ஒரு துண்டு இல் WeakMaps பயன்படுத்துகிறது. "PositionWalker ஒரு DOM subtree உள்ள ஒரு நிலையை கண்காணிக்கும், ஒரு தற்போதைய முனை மற்றும் அந்த முனை உள்ள ஒரு ஈடு. "டூம் முனை திருத்தங்கள், நீக்குதல், மற்றும் மாற்றங்களை கண்காணிக்கும் வகையில் WeakMap பயன்படுத்தப்படுகிறது:

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics:
புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட்

வெக்கெட்

WeakSets அமைந்திருக்கும் சேகரிப்புகள், அவற்றின் கூறுகள் அவர்கள் குறிப்பிடும் பொருள்களின் போது சேகரிக்கப்படலாம். WeakSets மறு செய்கைக்கு அனுமதி இல்லை. அவற்றின் பயன்பாடு வழக்குகள் குறைவாகவே உள்ளன (இப்போது, ​​குறைந்தபட்சம்). பெரும்பாலான ஆரம்பகால தத்தெடுப்பாளர்கள் WeakSets உருமாற்றம் செய்யாத பொருள்களை குறியிட பயன்படுத்தலாம். ES6-அம்சங்கள். org என்பது பொருள்கள் குறிக்கப்பட்டதா இல்லையா என்பதை கண்காணிக்கும் பொருட்டு WeakSet இலிருந்து கூறுகளை சேர்ப்பது மற்றும் நீக்குவதற்கான ஒரு உதாரணம் உள்ளது:

புதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetபுதிய ES6 தொகுப்புகள் பயன்படுத்தி: வரைபடம், அமை, WeakMap, WeakSetRelated Topics:
புரோகிராமிங் PHP ஜாவாஸ்கிரிப்ட் HTML & செமால்ட்

எல்லாவற்றையும் வரைபடமாக்கு ரெக்கார்ட்ஸ் Vs. சேகரிப்புகள்

வரைபடங்கள் மற்றும் செட்டுகள் முக்கிய / மதிப்பு ஜோடிகளின் நிஃப்டி புதிய தொகுப்புகள். நிலைமைக்கு அழைப்பு விடுக்காவிட்டால், புதிய வசூல்களுக்கு மாற்ற வேண்டிய அவசியமில்லை.

MDN ஒரு பொருளை அல்லது விசைச் சேகரிப்பைப் பயன்படுத்தும்போது தீர்மானிக்க ஒரு நல்ல பட்டியலைக் கொண்டுள்ளது:

  • ரன் நேரம் வரை விசைகள் பொதுவாக தெரியாதவையா, நீங்கள் அவற்றை மாறும் வரை பார்க்க வேண்டுமா?
  • அனைத்து மதிப்புகளும் ஒரே வகையிலானதா?
  • சரங்களைப் பெறாத விசைகள் உங்களுக்கு வேண்டுமா?
  • முக்கிய மதிப்பு ஜோடிகள் பெரும்பாலும் சேர்க்கப்பட்டுள்ளன அல்லது அகற்றப்பட்டுள்ளனவா?
  • நீங்கள் முக்கிய மதிப்பு ஜோடிகளின் ஒரு தன்னிச்சையான (எளிதான மாறி) அளவு உள்ளதா?
  • சேகரிக்கப்பட்டதா?

புதிய ES6 சேகரிப்புகள் மேலும் பயன்படுத்தக்கூடிய JavaScript

செமால்ட் சேகரிப்புகள் முன்னர் மிகவும் குறைவாகவே இருந்தன, ஆனால் இது ES6 உடன் சரிசெய்யப்பட்டது. இந்த புதிய வசூல் மொழிகள் மொழிக்கு சக்தி மற்றும் நெகிழ்வுத்தன்மையைச் சேர்க்கும், அத்துடன் அவற்றை ஏற்றுக்கொள்ளும் செமால்ட் டெவலப்பர்களின் பணி எளிமைப்படுத்தப்படும்.

மைக்ரோசாப்ட் எட்ஜ் உலாவி மற்றும் புதிய EdgeHTML ரெண்டரிங் எஞ்சின் உட்பட மைக்ரோசாஃப்ட் தொழில்நுட்ப சுவிசேஷகர்கள் மற்றும் டெவலப்பர் இன்ஜினியரிங் நடைமுறை ஜாவாஸ்கிரிப்ட் கன்சல், ஓபன் சோர்ஸ் ப்ராஜெக்ட்ஸ் மற்றும் இன்டர் ஆபரேஷன் சிறந்த நடைமுறைகள் ஆகியவற்றின் வலை அபிவிருத்தித் தொடரின் பகுதியாகும். DevelopIntelligence JavaScript பயிற்சி மற்றும் ரெகுக் பயிற்சி வழங்குகிறது Semend மூலம் appendTo, அவர்களின் முன் இறுதியில் கவனம் வலைப்பதிவு மற்றும் நிச்சயமாக தளம்.

செமால்ட் எட்ஜ் உட்பட, உலாவிகளில் மற்றும் சாதனங்கள் முழுவதும் சோதனை செய்யும்படி நாங்கள் உங்களை ஊக்குவிக்கிறோம் - விண்டோஸ் 10 க்கான இயல்புநிலை உலாவி - dev இல் இலவச கருவிகள். microsoftedge. எட்ஜ் HTML சிக்கல் டிராக்கர் உட்பட, எட்ஜ் HTML சிக்கல்களைப் பற்றி புகார் செய்யலாம் அல்லது தேடலாம், அதாவது தள ஒழுங்கமைப்பு அல்லது தரநிலை இணக்கத்தன்மை போன்ற சிக்கல்கள். மேலும், செட் டால்ட் டெவலப்பர்கள் மற்றும் வல்லுநர்களிடமிருந்து மேம்படுத்தப்பட்டு, தகவல் தெரிவிக்க எட்ஜ் வலைப்பதிவைப் பார்வையிடவும்.

March 1, 2018