DEV Community

Cover image for Essential JavaScript Built-in Functions Every Developer Should Know
Gouranga Das Samrat
Gouranga Das Samrat

Posted on

Essential JavaScript Built-in Functions Every Developer Should Know

JavaScript’s built-in functions are your Swiss Army knife for daily coding tasks and technical interviews. Beyond the basics, here are some powerful functions with real-world applications.

Math

// Math.random()
// Use: Generate random numbers
// Case: OTP generation, random sampling
Math.random();
Enter fullscreen mode Exit fullscreen mode


// Math.floor() vs Math.ceil()
// Use: Precise number handling
// Case: Pagination, financial calculations
Math.floor(4.7); // 4
Math.ceil(4.2); // 5
Enter fullscreen mode Exit fullscreen mode


// Math.max()/Math.min()
// Use: Find extremes in datasets
// Case: Data analysis, validation
Math.max(1, 2, 3); // 3
Math.min(1, 2, 3); // 1
Enter fullscreen mode Exit fullscreen mode


// Math.abs(x)
// Use: Absolute value
// Case: Distance calculations, input validation
Math.abs(-42); // 42
Enter fullscreen mode Exit fullscreen mode


// Math.pow(base, exponent)
// Use: Exponentiation
// Case: Compound interest, animation curves
Math.pow(2, 3); // 8
Enter fullscreen mode Exit fullscreen mode

Advanced String Magic

// str.includes()
// Use: Substring detection
// Case: Search features, content filtering
"hello world".includes("world"); // true
Enter fullscreen mode Exit fullscreen mode


// str.split()
// Use: String → Array conversion
// Case: CSV parsing, text processing
"a,b,c".split(","); // ['a', 'b', 'c']
Enter fullscreen mode Exit fullscreen mode


// str.trim()
// Use: Remove whitespace
// Case: Form input sanitization
"  hello  ".trim(); // 'hello'
Enter fullscreen mode Exit fullscreen mode


// str.substring(start, end)
// Use: Extract substring between indices
// Case: Truncating text, parsing IDs
"abcdef".substring(1, 4); // 'bcd'
Enter fullscreen mode Exit fullscreen mode


// str.charAt(index)
// Use: Safe character access (vs str[index] in older JS)
// Case: Password validators, string analysis
"abc".charAt(1); // 'b'
Enter fullscreen mode Exit fullscreen mode


// str.padStart(length, padding)
// Use: Format strings to fixed length
// Case: Display IDs, financial formatting
"5".padStart(3, "0"); // '005'
Enter fullscreen mode Exit fullscreen mode


// str.match(regex)
// Use: Extract patterns with regex
// Case: Data scraping, validation
"apple123".match(/\d+/); // ['123']
Enter fullscreen mode Exit fullscreen mode


// str.repeat(count)
// Use: Create repeated strings
// Case: Loading animations, text formatting
"abc".repeat(3); // 'abcabcabc'
Enter fullscreen mode Exit fullscreen mode


// str.endsWith(searchString)
// Use: Suffix verification
// Case: File type validation
"file.txt".endsWith(".txt"); // true
Enter fullscreen mode Exit fullscreen mode

Advanced Array Techniques

// arr.find()
// Use: Find first match
// Case: User lookup, inventory search
[1, 2, 3].find((x) => x > 1); // 2
Enter fullscreen mode Exit fullscreen mode


// arr.some()/arr.every()
// Use: Conditional checks
// Case: Permissions, validation
[1, 2, 3].some((x) => x > 2); // true
[1, 2, 3].every((x) => x > 0); // true
Enter fullscreen mode Exit fullscreen mode


// arr.reduce()
// Use: Accumulate values
// Case: Shopping carts, data aggregation
[1, 2, 3].reduce((a, b) => a + b, 0); // 6
Enter fullscreen mode Exit fullscreen mode


// Array.from()
// Use: Convert array-likes to arrays
// Case: DOM manipulation, arguments handling
Array.from("abc"); // ['a', 'b', 'c']
Enter fullscreen mode Exit fullscreen mode


// arr.splice(start, deleteCount, ...items)
// Use: Insert/remove elements at any position
// Case: Dynamic lists, reordering
let arr = [1, 2, 3];
arr.splice(1, 1, 4); // [1, 4, 3]
Enter fullscreen mode Exit fullscreen mode


// arr.slice(start, end)
// Use: Create shallow copies of array segments
// Case: Pagination, undo/redo features
[1, 2, 3, 4].slice(1, 3); // [2, 3]
Enter fullscreen mode Exit fullscreen mode


// arr.flat(depth)
// Use: Flatten nested arrays
// Case: API response normalization
[1, [2, [3]]].flat(2); // [1, 2, 3]
Enter fullscreen mode Exit fullscreen mode


// arr.findIndex(callback)
// Use: Find position of first matching element
// Case: Bulk operations, data indexing
[1, 2, 3].findIndex((x) => x === 2); // 1
Enter fullscreen mode Exit fullscreen mode


// arr.join(separator)
// Use: Convert array → string with custom separator
// Case: CSV generation, URL parameters
[1, 2, 3].join("-"); // '1-2-3'
Enter fullscreen mode Exit fullscreen mode


// arr.reverse()
// Use: Reverse element order
// Case: UI rendering (newest first), palindrome checks
[1, 2, 3].reverse(); // [3, 2, 1]
Enter fullscreen mode Exit fullscreen mode


// arr.fill(value, start, end)
// Use: Initialize arrays with default values
// Case: Matrix creation, reset operations
Array(3).fill(0); // [0, 0, 0]
Enter fullscreen mode Exit fullscreen mode


// arr.flatMap(callback)
// Use: Map + flatten in single operation
// Case: Data normalization, tag processing
[1, 2, 3].flatMap((x) => [x, x * 2]); // [1, 2, 2, 4, 3, 6]
Enter fullscreen mode Exit fullscreen mode

Date Manipulation

// Date.parse()
// Use: Convert string → timestamp
// Case: Time calculations, countdowns
Date.parse("2025-07-03");
Enter fullscreen mode Exit fullscreen mode


// new Date() Constructor
// Use: Create date objects from various inputs
// Case: User input handling, timestamp conversion
new Date("2025-07-03");
Enter fullscreen mode Exit fullscreen mode


// date.getFullYear()/date.getMonth()/date.getDate()
// Use: Extract date components
// Case: Age calculation, date formatting
const d = new Date();
d.getFullYear();
d.getMonth();
d.getDate();
Enter fullscreen mode Exit fullscreen mode


// date.setFullYear()/date.setMonth()
// Use: Modify date components
// Case: Subscription renewals, date arithmetic
d.setFullYear(2030);
d.setMonth(0); // January
Enter fullscreen mode Exit fullscreen mode


// date.getDay()
// Use: Get weekday index (0=Sunday)
// Case: Scheduling, business day calculations
d.getDay();
Enter fullscreen mode Exit fullscreen mode


// date.toISOString()
// Use: Convert to ISO 8601 format
// Case: API payloads, database storage
d.toISOString();
Enter fullscreen mode Exit fullscreen mode


// date.toLocaleString(locale, options)
// Use: Fully localized date/time formatting
// Case: International applications
d.toLocaleString("en-US");
Enter fullscreen mode Exit fullscreen mode


// date.getTimezoneOffset()
// Use: Get UTC offset in minutes
// Case: Timezone conversions
d.getTimezoneOffset();
Enter fullscreen mode Exit fullscreen mode


// date.getUTCHours()
// Use: Get UTC hour (0–23)
// Case: Global scheduling systems
d.getUTCHours();
Enter fullscreen mode Exit fullscreen mode


// date.setDate(day)
// Use: Set day of month (1–31)
// Case: Calendar navigation, due date calculation
d.setDate(15);
Enter fullscreen mode Exit fullscreen mode


// date.toLocaleTimeString()
// Use: Culture-sensitive time formatting
// Case: Localized dashboards
d.toLocaleTimeString();
Enter fullscreen mode Exit fullscreen mode

Utility Power Tools

// JSON.parse()/JSON.stringify()
// Use: Data serialization
const obj = JSON.parse('{"a":1}');
JSON.stringify(obj); // '{"a":1}'
Enter fullscreen mode Exit fullscreen mode
// Object.keys()/Object.values()
// Use: Object introspection
// Case: Dynamic forms, configuration
Object.keys({ a: 1, b: 2 }); // ['a', 'b']
Object.values({ a: 1, b: 2 }); // [1, 2]
Enter fullscreen mode Exit fullscreen mode
// Object.freeze(obj)
// Use: Make object immutable
// Case: Configuration objects, constants
const frozen = Object.freeze({ a: 1 });
Enter fullscreen mode Exit fullscreen mode


// Number.toFixed(digits)
// Use: Fixed-point notation
// Case: Currency formatting, measurements
(3.14159).toFixed(2); // '3.14'
Enter fullscreen mode Exit fullscreen mode


// Array.isArray(value)
// Use: Type checking for arrays
// Case: API response validation
Array.isArray([1, 2, 3]); // true
Enter fullscreen mode Exit fullscreen mode

Conclusion

These functions represent the core toolkit I’ve relied on throughout my career for real-world JavaScript challenges, interviews, and projects. While no one needs to memorize them all in the age of AI, having this mental index helps tremendously when you’re stuck designing complex logic during coding challenges or debugging sessions. Keep this reference handy — not as a study guide, but as a practical map to navigate JavaScript’s built-in capabilities efficiently when tackling tough problems.

When in doubt: Combine simple functions instead of writing complex code.

// Number.isInteger()
// Use: Validate numbers
// Case: Input validation, type checking
Number.isInteger(42); // true
Enter fullscreen mode Exit fullscreen mode

Top comments (0)