JavaScript ES6 Advanced
Advanced ES6+ features: spread/rest operators, default parameters, and ES6 modules.
Spread Operator
# Array spread
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; # [1,2,3,4,5]
# Object spread
const obj1 = {a: 1, b: 2};
const obj2 = {...obj1, c: 3};
# Function arguments
Math.max(...arr1); # Spread array
Rest Parameters
# Rest in functions
function sum(...numbers) {
return numbers.reduce((a, b) => a + b);
}
sum(1, 2, 3, 4); # 10
# With other parameters
function myFunc(first, ...rest) {
console.log(first, rest);
}
Default Parameters
# Function defaults
function greet(name = "Guest") {
return `Hello, ${name}!`;
}
# Multiple defaults
function createUser(name, age = 18, role = "user") {
return {name, age, role};
}
Modules
# Export
export const pi = 3.14159;
export function add(a, b) { return a + b; }
export default MyClass;
# Import
import {add, pi} from './math.js';
import MyClass from './class.js';
import * as math from './math.js';