DEV Community

Cover image for Important concept of javaScript
Anil
Anil

Posted on

Important concept of javaScript

Here are some important and frequently used JavaScript concepts that are crucial for day-to-day development:

1. Variables and Constants

  • var, let, and const are used for declaring variables.
  • var is function-scoped.
  • let and const are block-scoped, with const being used for constants (values that don’t change).
let age = 25;
const name = 'John';
Enter fullscreen mode Exit fullscreen mode

2. Data Types

  • Primitive Types: Number, String, Boolean, Undefined, Null, Symbol, BigInt.
  • Reference Types: Object, Array, Function
const person = { name: 'Alice', age: 30 };  // Object
const numbers = [1, 2, 3, 4];               // Array
Enter fullscreen mode Exit fullscreen mode

3. Functions

Function Declaration: Named functions.
Function Expression: Assign a function to a variable.
Arrow Functions: Shorter syntax, binds this lexically.

function greet() {
  console.log('Hello!');
}

const sum = (a, b) => a + b;  // Arrow Function
Enter fullscreen mode Exit fullscreen mode

4. Closures

  • Functions that remember the environment in which they were created.
function outer() {
  let count = 0;
  return function increment() {
    count++;
    return count;
  };
}

const inc = outer();
console.log(inc());  // 1
console.log(inc());  // 2
Enter fullscreen mode Exit fullscreen mode

5. Promises & Async/Await

  • Handling asynchronous operations.
  • Promises: Used for async operations like API calls.
  • Async/Await: Cleaner way to handle promises.
const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve("Data"), 1000);
  });
};

async function getData() {
  const data = await fetchData();
  console.log(data);  // "Data"
}

getData();
Enter fullscreen mode Exit fullscreen mode

6. Destructuring

  • Extract values from arrays or properties from objects.
const person = { name: 'John', age: 30 };
const { name, age } = person;

const nums = [1, 2, 3];
const [first, second] = nums;
Enter fullscreen mode Exit fullscreen mode

7. Spread and Rest Operator

  • Spread (...): Expands an array or object.
  • Rest (...): Gathers arguments into an array.
const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4];  // [1, 2, 3, 4]

function sum(...numbers) {
  return numbers.reduce((acc, val) => acc + val, 0);
}

sum(1, 2, 3);  // 6
Enter fullscreen mode Exit fullscreen mode

8. Array Methods

  • forEach: Iterates over an array.
  • map: Returns a new array with modified elements.
  • filter: Returns a new array with elements that meet a condition.
  • reduce: Reduces array to a single value.
const numbers = [1, 2, 3, 4];
const doubled = numbers.map(n => n * 2);     // [2, 4, 6, 8]
const evens = numbers.filter(n => n % 2 === 0);  // [2, 4]
const sum = numbers.reduce((acc, n) => acc + n, 0);  // 10
Enter fullscreen mode Exit fullscreen mode

9. Objects and Prototypes

  • JavaScript objects are dynamic and can have properties and methods.
  • Prototype: Allows adding methods to object types.
const person = { name: 'John', age: 30 };
Object.prototype.greet = function() {
  return `Hello, ${this.name}`;
};

console.log(person.greet());  // "Hello, John"
Enter fullscreen mode Exit fullscreen mode

10. Event Handling

  • Handling user events in the browser (e.g., clicks, inputs).
document.querySelector('button').addEventListener('click', function() {
  console.log('Button clicked!');
});
Enter fullscreen mode Exit fullscreen mode

11. DOM Manipulation

  • Access and modify HTML elements via JavaScript
const header = document.querySelector('h1');
header.textContent = 'Hello World!';
header.style.color = 'blue';
Enter fullscreen mode Exit fullscreen mode

12. Modules (ES6+)

  • JavaScript code can be split into modules for better maintainability
// module.js
export const greet = () => console.log('Hello');

// main.js
import { greet } from './module.js';
greet();  // "Hello"
Enter fullscreen mode Exit fullscreen mode

13. Error Handling

  • Try/Catch blocks for handling exceptions.
try {
  throw new Error('Something went wrong');
} catch (error) {
  console.error(error.message);
}
Enter fullscreen mode Exit fullscreen mode

14. Template Literals

  • Using backticks for multi-line strings and embedding expressions
const name = 'John';
const greeting = `Hello, ${name}`;
Enter fullscreen mode Exit fullscreen mode

15. Truthy and Falsy Values

  • Understanding which values evaluate to true or false.
if (0) {  // Falsy
  console.log('This won’t run');
}

if (1) {  // Truthy
  console.log('This will run');
}
Enter fullscreen mode Exit fullscreen mode

Mastering these concepts will allow you to tackle most challenges in day-to-day JavaScript development!

Top comments (0)