Last active
May 24, 2025 07:32
-
-
Save Kcko/ef18eb1d508901d0b971ec26df222180 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
@source: https://javascript.plainenglish.io/50-javascript-shortcuts-that-will-make-you-a-code-wizard-in-2025-14dd7aee319c | |
*/ | |
// 1. Ternary Operator | |
const status = loggedIn ? "Welcome!" : "Please login."; | |
// 2. Default Parameters | |
function greet(name = "Stranger") { | |
return `Hello, ${name}`; | |
} | |
// 3. Arrow Functions | |
const multiply = (a, b) => a * b; | |
// 4. Destructuring Objects | |
const { title, year } = movie; | |
// 5. Destructuring Arrays | |
const [first, second] = topResults; | |
// 6. Template Literals | |
const greeting = `Hey, ${user.name}!`; | |
// 7. Spread Operator | |
const newTeam = [...oldTeam, "Alice"]; | |
// 8. Rest Parameters | |
function logAll(...args) { | |
console.log(args); | |
} | |
// 9. Optional Chaining | |
const city = user?.address?.city; | |
// 10. Nullish Coalescing | |
const nickname = inputName ?? "Anonymous"; | |
// 12. Logical OR Assignment | |
settings.volume ||= 50; | |
// 13. Logical AND Assignment | |
user.isAdmin &&= false; | |
// 14. Object Property Shorthand | |
const age = 24; | |
const person = { name, age }; | |
// 15. Computed Property Names | |
const field = "score"; | |
const stats = { [field]: 100 }; | |
// 16. For-of Loop | |
for (const char of name) { | |
console.log(char); | |
} | |
// 17. forEach | |
tags.forEach(tag => console.log(`#${tag}`)); | |
// 18. map() | |
const lengths = names.map(n => n.length); | |
// 19. filter() | |
const passed = grades.filter(g => g >= 60); | |
// 20. reduce() | |
const sum = numbers.reduce((a, b) => a + b, 0); | |
// 21. includes() | |
if (items.includes("🚀")) launch(); | |
// 22. Unique Array with Set | |
const unique = [...new Set(tags)]; | |
// 23. Object.entries() | |
Object.entries(data).forEach(([k, v]) => console.log(k, v)); | |
// 24. Object.values() | |
const values = Object.values(config); | |
// 25. Object.keys() | |
const keys = Object.keys(settings); | |
// 26. Array Method Chaining | |
data.filter(a => a.active).map(a => a.name); | |
// 27. Flatten Arrays | |
const flat = nested.flat(2); | |
// 28. String.trim() | |
const cleaned = input.trim(); | |
// 29. padStart() | |
const padded = id.padStart(5, "0"); | |
// 30. Format Numbers | |
const price = new Intl.NumberFormat().format(1234567); | |
// 31. Dynamic Import | |
const module = await import("./utils.js"); | |
// 32. Promise.all() | |
await Promise.all([loadUser(), loadPosts()]); | |
// 33. Async/Await | |
const getData = async () => { | |
const res = await fetch(url); | |
return await res.json(); | |
}; | |
// 34. Optional Function Params | |
function log(message, level = "info") { | |
console[level](message); | |
} | |
// 35. Number Conversion with + | |
const num = +"42"; | |
// 36. Boolean Conversion with !! | |
const isValid = !!userInput; | |
// 37. Swap Values | |
[a, b] = [b, a]; | |
// 38. String to Array | |
const chars = [..."dev"]; | |
// 39. Clone Object | |
const copy = { ...original }; | |
// 40. Debounce | |
const debounce = (fn, delay) => { | |
let timeout; | |
return (...args) => { | |
clearTimeout(timeout); | |
timeout = setTimeout(() => fn(...args), delay); | |
}; | |
}; | |
// 41. Named Capture Groups in Regex | |
const url = "https://dev.to"; | |
const match = url.match(/(?<protocol>https?):\/\/(?<host>.+)/); | |
console.log(match.groups); | |
// 42. ??= Operator | |
data.username ??= "guest"; | |
// 43. Numeric Separators | |
const big = 1_000_000_000; | |
// 44. Top-Level await (in modules) | |
const user = await fetchUser(); | |
// 45. Array.from with Map | |
const numbers = Array.from(new Set([1, 2, 2, 3])); | |
// 46. Group Array by Property | |
const grouped = data.reduce((acc, obj) => { | |
acc[obj.type] = acc[obj.type] || []; | |
acc[obj.type].push(obj); | |
return acc; | |
}, {}); | |
// 47. isFinite() | |
if (isFinite(num)) { /* safe to use */ } | |
// 48. Abort Fetch Request | |
const controller = new AbortController(); | |
fetch(url, { signal: controller.signal }); | |
controller.abort(); | |
// 49. toLocaleString() | |
(1234567.89).toLocaleString("en-US", { | |
style: "currency", | |
currency: "USD" | |
}); | |
// 50. StructuredClone | |
const clone = structuredClone(myObj); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment