DEV Community

Cover image for πŸš€ Mastering the 10 Pillars of Front-End
Phani Murari
Phani Murari

Posted on

3 1

πŸš€ Mastering the 10 Pillars of Front-End

Dive into concise explanations, relatable examples, and handy code snippets for every essential concept a senior developer must know! πŸ”₯


πŸ”„ 1. Event Loop

Explanation: The event loop checks if the call stack is empty. If so, it checks the message queue for waiting events and executes them.

Example: 🍳 Think of a chef (event loop) checking if there's a dish (task) ready. If yes, it's served. If not, they check for new orders (events).

Code:

console.log('First');
setTimeout(() => {
  console.log('Second');
}, 0);
console.log('Third');  // Outputs: First, Third, Second
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


🎨 2. Critical Rendering Path

Explanation: The steps a browser follows to convert HTML, CSS, and JavaScript into visible pixels.

Example: 🏒 Think of constructing a building: foundation (DOM), design (CSSOM), and paint (rendering).

Official Resource: πŸ“š Google Developers - Critical Rendering Path


πŸ–‹οΈ 3. Let, Const, Var and Block Scoping

Explanation:

  • var: function-scoped, re-declarable, and updatable.
  • let: block-scoped, not re-declarable, but updatable.
  • const: block-scoped, neither re-declarable nor updatable.

Example: 🏫 In a classroom: sections (var), roll numbers in a section (let), and birth names (const).

Code:

var x = 10;
if(true) {
    var x = 20;  
    let y = 30;  
    const z = 40;
}
console.log(x);  // Outputs: 20
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


🧠 4. Closure

Explanation: A function having access to its own variables, outer function's variables, and global variables.

Example: πŸ™‹ A person remembering their name, family name, and celebrities' names.

Code:

function outer() {
  let outerVar = 'Outside!';
  function inner() {
    console.log(outerVar);
  }
  return inner;
}
const myClosure = outer();
myClosure();  // Outputs: Outside!
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


πŸ”„ 5. Functional Programming

Explanation: A paradigm where functions are primary, emphasizing immutability and pure functions.

Example: πŸ₯ͺ Making sandwiches using fresh ingredients and the same recipe.

Code:

const array = [1, 2, 3];
const double = array.map(item => item * 2);  // [2, 4, 6]
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


πŸ” 6. This Keyword Behavior

Explanation: this refers to the object executing the current function. Its context varies.

Example: πŸŽ“ In class, this student means the one answering.

Code:

const obj = {
  name: 'John',
  sayName: function() {
    console.log(this.name);
  }
};
obj.sayName();  // Outputs: John
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


πŸ› οΈ 7. Frameworks Usage

Explanation: Frameworks offer a structure for faster development. Understand their core concepts and the problems they solve.

Example: πŸš— Use a car for long distances, not a short walk.

Official Resource: Varies, e.g., πŸ“š React Docs


πŸ‘©β€πŸ‘©β€πŸ‘§ 8. Prototypical Inheritance

Explanation: In JavaScript, objects inherit properties and methods from others. This is prototypical inheritance.

Example: πŸ‘ͺ Children inheriting traits from parents.

Code:

function Parent() {}
Parent.prototype.sayHello = function() {
  console.log('Hello from parent');
};

function Child() {}
Child.prototype = Object.create(Parent.prototype);
const child = new Child();
child.sayHello();  // Outputs: Hello from parent
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


⌚ 9. Async, Await vs. Promises

Explanation:

  • Promises: Handle asynchronous operations with states (pending, fulfilled, rejected).
  • async/await: Makes asynchronous code look synchronous.

Example: πŸ“… Promise is like a task promise. Async/await marks it on a to-do list and waits.

Code:

// Promise
function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('Data fetched');
    }, 2000);
  });
}

// async/await
async function fetchAndDisplay() {
  const data = await fetchData();
  console.log(data);
}
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


⏲️ 10. Debounce vs Throttle

Explanation:

  • Debounce: Groups events if they're in quick succession.
  • Throttle: Executes a function at most once in a specified period.

Example: πŸ—£οΈ Debounce waits for someone to finish speaking. Throttle limits speech to once every minute.

Code: Using Lodash:

// Debounce
const debouncedSave = _.debounce(() => console.log('Saved'), 300);

// Throttle
const throttledSave = _.throttle(() => console.log('Saved'), 300);
Enter fullscreen mode Exit fullscreen mode

πŸ“š Official Resource


Best of luck with your interviews! πŸ€πŸš€

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

Top comments (3)

Collapse
 
jonrandy profile image
Jon Randy πŸŽ–οΈ β€’ β€’ Edited

Closure: A function having access to its own variables, outer function's variables, and global variables.

A closure is not a function. Even the MDN reference you link says this. ALL functions have access to the set of variables you mention.

Collapse
 
cezarytomczyk profile image
Cezary Tomczyk β€’

One tip I'd suggest: setTimeout -> window. setTimeout or even globalThis.setTimeout.

ctomczyk.pl/js-tip-always-use-full...

Collapse
 
xanyl profile image
Anil K Tiwari β€’

Great article!

Image of Docusign

πŸ› οΈ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more