Here are some important and frequently used JavaScript concepts that are crucial for day-to-day development:
1. Variables and Constants
-
var
,let
, andconst
are used for declaring variables. -
var
is function-scoped. -
let
andconst
are block-scoped, withconst
being used for constants (values that don’t change).
let age = 25;
const name = 'John';
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
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
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
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();
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;
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
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
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"
10. Event Handling
- Handling user events in the browser (e.g., clicks, inputs).
document.querySelector('button').addEventListener('click', function() {
console.log('Button clicked!');
});
11. DOM Manipulation
- Access and modify HTML elements via JavaScript
const header = document.querySelector('h1');
header.textContent = 'Hello World!';
header.style.color = 'blue';
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"
13. Error Handling
- Try/Catch blocks for handling exceptions.
try {
throw new Error('Something went wrong');
} catch (error) {
console.error(error.message);
}
14. Template Literals
- Using backticks for multi-line strings and embedding expressions
const name = 'John';
const greeting = `Hello, ${name}`;
15. Truthy and Falsy Values
- Understanding which values evaluate to
true
orfalse
.
if (0) { // Falsy
console.log('This won’t run');
}
if (1) { // Truthy
console.log('This will run');
}
Mastering these concepts will allow you to tackle most challenges in day-to-day JavaScript development!
Top comments (0)