Skip to content

adithyaa-s/33-js-concepts

 
 

Repository files navigation


33 Concepts Every JS Developer Should Know

ஒவ்வொரு ஜாவாஸ்கிரிப்ட் டெவலப்பரும் தெரிந்து கொள்ள வேண்டிய 33 கருத்துக்கள்

அறிமுகம்

டெவலப்பர்கள் ஜாவாஸ்கிரிப்டில் தங்கள் கருத்துக்களை மாஸ்டர் செய்ய உதவும் நோக்கத்துடன் இந்த களஞ்சியம் உருவாக்கப்பட்டது. இது ஒரு தேவை அல்ல, ஆனால் எதிர்கால படிப்புக்கான வழிகாட்டி. இது ஸ்டீபன் கர்டிஸ் எழுதிய ஒரு கட்டுரையை அடிப்படையாகக் கொண்டது, அதை நீங்கள் [இங்கே படிக்கலாம்]. (https://medium.com/@stephenthecurt/33-fundamentals-every-javascript-developer-should-know-13dd720a90d1).

🚀 [2018 ஆம் ஆண்டின் சிறந்த திறந்த மூல திட்டங்களில்] ஒன்றாக கிட்ஹப் கருதுகிறது!(https://blog.github.com/2018-12-13-new-open-source-projects/)

சமூகம்

உங்கள் சொந்த மறுபரிசீலனைகள் அல்லது மதிப்புரைகளுக்கு ஒரு இணைப்பைச் சேர்ப்பதன் மூலம் ஒரு PR ஐ சமர்ப்பிக்க தயங்கவும். நீங்கள் ரெப்போவை உங்கள் சொந்த மொழியில் மொழிபெயர்க்க விரும்பினால், தயவுசெய்து அவ்வாறு செய்ய தயங்கவும்.

இந்த ரெப்போவுக்கான அனைத்து மொழிபெயர்ப்புகளும் கீழே பட்டியலிடப்படும்ஃ


  1. Call Stack
  2. Primitive Types
  3. Value Types and Reference Types
  4. Implicit, Explicit, Nominal, Structuring and Duck Typing
  5. == vs === vs typeof
  6. Function Scope, Block Scope and Lexical Scope
  7. Expression vs Statement
  8. IIFE, Modules and Namespaces
  9. Message Queue and Event Loop
  10. setTimeout, setInterval and requestAnimationFrame
  11. JavaScript Engines
  12. Bitwise Operators, Type Arrays and Array Buffers
  13. DOM and Layout Trees
  14. Factories and Classes
  15. this, call, apply and bind
  16. new, Constructor, instanceof and Instances
  17. Prototype Inheritance and Prototype Chain
  18. Object.create and Object.assign
  19. map, reduce, filter
  20. Pure Functions, Side Effects, State Mutation and Event Propagation
  21. Closures
  22. High Order Functions
  23. Recursion
  24. Collections and Generators
  25. Promises
  26. async/await
  27. Data Structures
  28. Expensive Operation and Big O Notation
  29. Algorithms
  30. Inheritance, Polymorphism and Code Reuse
  31. Design Patterns
  32. Partial Applications, Currying, Compose and Pipe
  33. Clean Code

1. Call Stack (அழைப்பு அடுக்கு)

அழைப்பு அடுக்கு என்பது ஒரு நிரலுக்குள் செயல்பாட்டு செயல்பாட்டைக் கண்காணிக்க ஜாவாஸ்கிரிப்ட் மொழிபெயர்ப்பாளர் பயன்படுத்தும் ஒரு பொறிமுறையாகும். ஜாவாஸ்கிரிப்டில், செயல்பாடுகள் அவை அழைக்கப்படும் வரிசையில் செயல்படுத்தப்படுகின்றன. கால் ஸ்டேக் லாஸ்ட் இன், ஃபர்ஸ்ட் அவுட் (LIFO) கொள்கையைப் பின்பற்றுகிறது, அதாவது ஸ்டேக்கில் தள்ளப்பட்ட கடைசி செயல்பாடு முதலில் செயல்படுத்தப்படும்.

ECMAScript விவரக்குறிப்பின் படி, அழைப்பு அடுக்கு செயல்படுத்தல் சூழலின் ஒரு பகுதியாக வரையறுக்கப்படுகிறது. ஒரு செயல்பாடு அழைக்கப்படும் போதெல்லாம், ஒரு புதிய செயலாக்க சூழல் உருவாக்கப்பட்டு அடுக்கின் மேற்புறத்தில் வைக்கப்படுகிறது. செயல்பாடு முடிந்ததும், அதன் செயலாக்க சூழல் அடுக்கிலிருந்து அகற்றப்பட்டு, கட்டுப்பாடு முந்தைய சூழலுக்குத் திரும்பும். இது ஒத்திசைவு குறியீடு செயலாக்கத்தை நிர்வகிக்க உதவுகிறது, ஏனெனில் ஒவ்வொரு செயல்பாட்டு அழைப்பும் அடுத்த ஒன்றைத் தொடங்குவதற்கு முன்பு முடிக்கப்பட வேண்டும்.

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


2. Primitive Types (ஆரம்பகால வகைகள்)

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

பழமையான மதிப்புகள் ஒரு மாறிக்கு நேரடியாக ஒதுக்கப்படுகின்றன, மேலும் நீங்கள் ஒரு பழமையான வகையை கையாளும்போது, நீங்கள் மதிப்பில் நேரடியாக வேலை செய்கிறீர்கள். பொருள்களைப் போலல்லாமல், முதன்மைக்குறியீடுகளுக்கு பண்புகள் அல்லது முறைகள் இல்லை, ஆனால் ஜாவாஸ்கிரிப்ட் தானாகவே பழமையான மதிப்புகளை பொருள் சகாக்களுடன் தேவைப்படும்போது மூடுகிறது. (e.g., when calling methods on strings).

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


3. Value Types and Reference Types (மதிப்பு வகைகள் மற்றும் குறிப்பு வகைகள்)

ECMAScript விவரக்குறிப்பின் படி, மதிப்பு வகைகள் மாறி அணுகும் இடத்தில் நேரடியாக சேமிக்கப்படுகின்றன. எண், சரம், பூலியன், வரையறுக்கப்படாதது, பெரியது, சின்னம் மற்றும் பூஜ்யம் போன்ற வகைகள் இதில் அடங்கும். நீங்கள் ஒரு மாறிக்கு ஒரு மதிப்பு வகையை ஒதுக்கும்போது, அந்த மதிப்பே சேமிக்கப்படும்.

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


4. Implicit, Explicit, Nominal, Structuring and Duck Typing (மறைமுகமான, வெளிப்படையான, பெயரளவு, கட்டமைப்பு மற்றும் வாத்து தட்டச்சு)

ECMAScript விவரக்குறிப்பு ஜாவாஸ்கிரிப்டை ஒரு மாறும் தட்டச்சு மொழியாக வரையறுக்கிறது, அதாவது வகைகள் மாறிகளை விட மதிப்புகளுடன் தொடர்புடையவை, மேலும் வகை சரிபார்ப்பு இயக்க நேரத்தில் நிகழ்கிறது. ஜாவாஸ்கிரிப்ட் வகைகளை நிர்வகிக்க பல்வேறு வழிகள் உள்ளனஃ

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

வெளிப்படையான தட்டச்சுஃ மறைமுகமான தட்டச்சு போலல்லாமல், வெளிப்படையான தட்டச்சு எண் () சரம் () அல்லது பூலியன் போன்ற செயல்பாடுகளைப் பயன்படுத்தி ஒரு மதிப்பை ஒரு வகையிலிருந்து இன்னொரு வகைக்கு கைமுறையாக மாற்றுவதை உள்ளடக்கியது.().

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

கட்டமைப்பு தட்டச்சுஃ இந்த வகை அமைப்பில், வகைகள் தரவுகளின் கட்டமைப்பு அல்லது பண்புகளை அடிப்படையாகக் கொண்டவை. ஜாவாஸ்கிரிப்ட் என்பது கட்டமைப்பு ரீதியாக தட்டச்சு செய்யப்பட்ட மொழியாகும், அங்கு பொருள்கள் ஒரே கட்டமைப்பைப் பகிர்ந்து கொண்டால் இணக்கமாக இருக்கும். (i.e., the same set of properties and methods).

வாத்து தட்டச்சுஃ இது ஒரு பொருளின் பொருத்தம் பொருளின் உண்மையான வகையால் அல்லாமல், சில பண்புகள் மற்றும் முறைகள் இருப்பதன் மூலம் தீர்மானிக்கப்படும் ஒரு கருத்தாகும். ஜாவாஸ்கிரிப்ட் வாத்து தட்டச்சு செய்வதை பெரிதும் நம்பியுள்ளது, அங்கு நடத்தை அதன் அறிவிக்கப்பட்ட வகையை விட ஒரு பொருளின் பண்புகளிலிருந்து ஊகிக்கப்படுகிறது.

கட்டுரைகள்

video வீடியோக்கள்

புத்தகங்கள்

⬆ மேலே திரும்பவும்


5. == vs === vs typeof (= = vs = = = vs வகை)

ECMAScript விவரக்குறிப்பின் படி, ஜாவாஸ்கிரிப்ட் கடுமையான (= = =) மற்றும் தளர்வான (= =) சமத்துவ ஆபரேட்டர்கள் இரண்டையும் உள்ளடக்கியது, அவை மதிப்புகளை ஒப்பிடும்போது வித்தியாசமாக செயல்படுகின்றன. இங்கே ஒரு முறிவுஃ

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

= = = (கண்டிப்பான சமத்துவம்) இந்த இயக்குபவர் எந்த விதமான வற்புறுத்தலும் இல்லாமல் மதிப்பு மற்றும் வகை இரண்டையும் ஒப்பிடுகிறார். இரண்டு மதிப்புகளும் ஒரே வகையைச் சேர்ந்தவை இல்லையென்றால், ஒப்பீடு தவறானதாக இருக்கும்.

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

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


6. Function Scope, Block Scope and Lexical Scope (செயல்பாட்டு வரம்பு, தொகுதி வரம்பு மற்றும் லெக்சிகல் வரம்பு)

ECMAScript விவரக்குறிப்பு மூன்று முக்கிய வகையான நோக்கங்களை கோடிட்டுக் காட்டுகிறதுஃ

செயல்பாட்டு வரம்புஃ var ஐப் பயன்படுத்தி ஒரு செயல்பாட்டிற்குள் அறிவிக்கப்பட்ட மாறிகள் அந்த செயல்பாட்டிற்குள் மட்டுமே அணுகக்கூடியவை. இந்த நோக்கம் மாறிகள் அறிவிக்கப்பட்ட செயல்பாட்டிற்கு வெளியே அணுகப்படுவதை தனிமைப்படுத்துகிறது.

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

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

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


7. Expression vs Statement (வெளிப்பாடு எதிராக அறிக்கை)

ECMAScript விவரக்குறிப்பின் படி, வெளிப்பாடுகள் ஒரு மதிப்பை உருவாக்குகின்றன, மேலும் அறிக்கைகள் என்பது மாறி ஒதுக்கீடு அல்லது கட்டுப்பாட்டு ஓட்டம் போன்ற ஒரு செயலைச் செய்வதற்கான வழிமுறைகளாகும். செயல்பாட்டு அறிவிப்புகள் ஏற்றப்படுகின்றன, அவை குறியீட்டில் வரையறுக்கப்படுவதற்கு முன்பு அழைக்கப்படலாம், அதே நேரத்தில் செயல்பாட்டு வெளிப்பாடுகள் உயர்த்தப்படுவதில்லை, மேலும் அவை அழைக்கப்படுவதற்கு முன்பு வரையறுக்கப்பட வேண்டும்.

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


8. IIFE, Modules and Namespaces (IIFE, தொகுதிகள் மற்றும் பெயர் இடங்கள்)

ES6 தொகுதிகள் அறிமுகப்படுத்தப்பட்டதன் மூலம், நோக்கம் தனிமைப்படுத்தலில் IIFE களின் பங்கு குறைந்துவிட்டது, ஆனால் அவை இன்னும் பொருத்தமானதாகவே உள்ளன.

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


9. Message Queue and Event Loop (செய்தி வரிசை மற்றும் நிகழ்வு வளையம்)

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

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


10. setTimeout, setInterval and requestAnimationFrame (setTimeout, setInterval மற்றும் requestAnimationFrame)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


11. JavaScript Engines (ஜாவாஸ்கிரிப்ட் இயந்திரங்கள்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


12. Bitwise Operators, Type Arrays and Array Buffers (பிட்வைஸ் ஆபரேட்டர்கள், வகை வரிசைகள் மற்றும் வரிசை இடையகங்கள்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


13. DOM and Layout Trees (DOM மற்றும் லேஅவுட் மரங்கள்)

குறிப்பு

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


14. Factories and Classes (தொழிற்சாலைகள் மற்றும் வகுப்புகள்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


15. this, call, apply and bind (இதை, அழைக்கவும், விண்ணப்பிக்கவும் மற்றும் பிணைக்கவும்)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


16. new, Constructor, instanceof and Instances (புதிய, கட்டமைப்பாளர், instanceof மற்றும் நிகழ்வுகள்)

கட்டுரைகள்

⬆ மேலே திரும்பவும்


17. Prototype Inheritance and Prototype Chain (முன்மாதிரி பரம்பரை மற்றும் முன்மாதிரி சங்கிலி)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

புத்தகங்கள்

⬆ மேலே திரும்பவும்


18. Object.create and Object.assign (பொருள்.உருவாக்கு மற்றும் பொருள்.ஒதுக்குங்கள்)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


19. map, reduce, filter (வரைபடம், குறை, வடிகட்டி)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


20. Pure Functions, Side Effects, State Mutation and Event Propagation (தூய செயல்பாடுகள், பக்க விளைவுகள், நிலை மாற்றம் மற்றும் நிகழ்வு பரப்புதல்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


21. Closures (மூடல்கள்)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


22. High Order Functions (உயர் வரிசை செயல்பாடுகள்)

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


23. Recursion (மறுசுழற்சி)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


24. Collections and Generators (தொகுப்புகள் மற்றும் ஜெனரேட்டர்கள்)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


25. Promises (வாக்குறுதிகள்)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


26. async/await (ஒத்திசைவு/காத்திரு)

குறிப்பு

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


27. Data Structures (தரவு கட்டமைப்புகள்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


28. Expensive Operation and Big O Notation (விலையுயர்ந்த செயல்பாடு மற்றும் பிக் ஓ குறியீடு)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


29. Algorithms (வழிமுறைகள்)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


30. Inheritance, Polymorphism and Code Reuse (பரம்பரை, பாலிமார்பிசம் மற்றும் குறியீடு மறுபயன்பாடு)

குறிப்பு

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


31. Design Patterns (வடிவமைப்பு முறைகள்)

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


32. Partial Applications, Currying, Compose and Pipe (பகுதி பயன்பாடுகள், கியூரிங், இசையமைத்தல் மற்றும் குழாய்)

புத்தகங்கள்

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்


33. Clean Code (சுத்தமான குறியீடு)

கட்டுரைகள்

video வீடியோக்கள்

⬆ மேலே திரும்பவும்

உரிமம்

இந்த மென்பொருள் MIT உரிமத்தின் கீழ் உரிமம் பெற்றது, பார்க்கவும் உரிமம் மேலும் தகவல்களுக்கு ©Leonardo Maldonado.

About

📜 33 JavaScript concepts

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%