Hey, Mates. How are you doing? You know, Even experienced devs trip over JavaScript quirks sometimes — here are a few I’ve seen (and made myself 😅 as well): 1. Using var instead of let or const var is function-scoped and can cause weird bugs due to hoisting. ✅ Use let for variables that change and const for ones that don’t. 2. Forgetting to handle async properly Mixing promises, callbacks, and async/await can lead to race conditions or unhandled rejections. ✅ Always await async functions or chain with .then(), and wrap in try/catch. 3. Comparing values incorrectly == does type coercion (and sometimes weirdly!). ✅ Stick to === for strict comparison. 4. Misunderstanding this Arrow functions don’t have their own this — they inherit from the parent scope. ✅ Know when to use arrow functions vs regular ones. 5. Not handling floating-point math 0.1 + 0.2 !== 0.3 (yes, really). ✅ Use libraries like decimal.js or round your values when precision matters. ⸻ These are small details — but they separate good JavaScript from great JavaScript. 💬 What’s a JS mistake you’ve seen (or made) that taught you something valuable? #JavaScript #WebDevelopment #Programming #CodingTips #Frontend
Abubakrsiddik Abdurakhimov 🇺🇿’s Post
More Relevant Posts
-
💡 Most devs think shallow copies always affect the original… but that’s not true! Let’s clear this common JavaScript misconception 👇 🧩 Example 1 — Primitives let obj = { a: 1, b: 2, c: 3 }; let obj2 = { ...obj }; obj2.b++; console.log(obj.b); // 2 ✅ unchanged ➡️ Here b is a primitive (number). Primitives are copied by value, so obj and obj2 have separate copies. Incrementing obj2.b doesn’t affect obj.b. ⚠️ Example 2 — Nested Objects let obj = { a: 1, b: { x: 10 } }; let obj2 = { ...obj }; obj2.b.x = 99; console.log(obj.b.x); // 99 ❗changed ➡️ Here b is an object, and a shallow copy only copies its reference. Both obj.b and obj2.b point to the same memory. So changing one affects the other. 💬 TL;DR Shallow copy doesn’t always affect the original — it depends on what’s inside the object. Primitives → safe Objects → shared #JavaScript #Frontend #WebDevelopment #ReactJS #CodingTips #Programming #JSFacts
To view or add a comment, sign in
-
How JS Converts [] + {} to [object Object] —🤯 JavaScript can be weirdly magical sometimes. Ever tried this in your console? 👇 [] + {} // Output: "[object Object]" At first glance, it looks confusing — why does an empty array and an empty object become a string? Let’s decode the magic 🪄 1️⃣ + Operator in JS The + operator doesn’t just add numbers — it can also concatenate strings. 2️⃣ Type Conversion Happens! [] (empty array) → when converted to string becomes "" (empty string). {} (empty object) → when converted to string becomes "[object Object]". 3️⃣ Final Expression So JS actually does: "" + "[object Object]" → "[object Object]" ✅ Bonus twist: Try reversing it: {} + [] Now it gives 0 because {} is treated as an empty block,not an object. 🤯 JavaScript — where logic meets magic ✨ 🔹 Follow Prashansa Sinha for more fun JS mysteries and simple explanations 👩💻 #JavaScript #WebDevelopment #Coding #Frontend #JS #LearnToCode #Programming #TechCommunity #Developers #CodeNewbie #WebDev
To view or add a comment, sign in
-
JavaScript Concept — “The Power of Closures” 💭 Ever wondered how JavaScript functions “remember” the variables around them? That’s the magic of Closures — one of JavaScript’s most elegant features. Closures allow a function to access variables from its outer scope, even after that scope has closed. This concept powers some of the most powerful patterns in JS — from private variables to event handlers. Here’s a small example 👇 function counter() { let count = 0; return function() { count++; return count; }; } const add = counter(); console.log(add()); // 1 console.log(add()); // 2 It’s simple, elegant, and shows how deep JavaScript really is. #JavaScript #WebDevelopment #Coding #Frontend #Learning
To view or add a comment, sign in
-
🚀 JavaScript Gotchas: var vs let in Loops & setTimeout Same code, different output 👇 Ever wondered why this code prints 5 5 5 5 5 instead of 0 1 2 3 4? for (var i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }, 1000); } 💡 Reason: var is function-scoped — only one i exists for the entire loop. setTimeout callbacks run after the loop finishes, so each callback sees the final value of i → 5. ✅ Fix it with let: for (let i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }, 1000); } let is block-scoped — each iteration gets a new copy of i. Now, callbacks “remember” the correct value of i. ✅ Output: 0 1 2 3 4 💡 Key takeaway: var → shared variable in loop → tricky in async callbacks let → separate variable per iteration → safer & predictable ✨ Tip: Even setTimeout(..., 0) behaves the same! The event loop always runs callbacks after the current synchronous code. #JavaScript #CodingTips #FrontendDevelopment #WebDevelopment #Programming #LearnJS #DeveloperTips #AsyncJavaScript #Closures
To view or add a comment, sign in
-
-
*5 Things I Wish I Knew When Starting JavaScript 👨💻* Looking back, JavaScript was both exciting and confusing when I started. Here are 5 things I wish someone had told me earlier: *1. var is dangerous. Use "let" and "const" "var" is function-scoped and can lead to unexpected bugs. "let" and "const" are block-scoped and safer. *2. JavaScript is asynchronous Things like "setTimeout()"and "fetch()" don’t behave in a straight top-down flow. Understanding the *event loop* helps a lot. *3. Functions are first-class citizens* – You can pass functions as arguments, return them, and even store them in variables. It’s powerful once you get used to it. *4. The DOM is slow – avoid unnecessary access* – Repeated DOM queries and manipulations can hurt performance. Use "documentFragment" or batch changes when possible. *5. Don’t ignore array methods* map(), "filter()" , "reduce()", "find()"… they make code cleaner and more readable. I wish I started using them sooner. 💡 *Bonus Tip:* "console.log()" is your best friend during debugging! If you’re starting out with JS, save this. And if you're ahead in the journey — what do *you* wish you knew earlier? #JavaScript #WebDevelopment #CodingJourney #Frontend #LearnToCode #DeveloperTips
To view or add a comment, sign in
-
⚡ JavaScript is easy… until it isn’t. Everyone knows: console.log("Hello World") But then JavaScript hits you with: [] == ![] → true typeof null → "object" {} + [] → 0 "5" - 2 → 3 "5" + 2 → "52" And suddenly, you question every life decision you’ve made. Here’s why beginners get stuck: ❌ They only “learn syntax” ✅ They don’t learn how JS thinks JS isn’t just a language. It’s a chaos engine powered by: coercion closures prototypes event loops async hell hoisting madness If you want to stop feeling like JS is trolling you: ✔ Understand how the call stack works ✔ Know the difference between == and === ✔ Stop abusing var like it’s 2009 ✔ Learn promises before crying about async/await ✔ Read the MDN docs, not just YouTube comments Real JS devs don’t copy snippets. They understand why they work. If JavaScript feels weird… Good. It’s weird on purpose. Master the weirdness, and it becomes your superpower. ⚡ #javascript #webdev #frontend #coding #softwareengineering #reactjs #nodejs #programming #developers #typescript #LearningEveryday
To view or add a comment, sign in
-
⚡ JavaScript is easy… until it isn’t. Everyone knows: console.log("Hello World") But then JavaScript hits you with: [] == ![] → true typeof null → "object" {} + [] → 0 "5" - 2 → 3 "5" + 2 → "52" And suddenly, you question every life decision you’ve made. Here’s why beginners get stuck: ❌ They only “learn syntax” ✅ They don’t learn how JS thinks JS isn’t just a language. It’s a chaos engine powered by: coercion closures prototypes event loops async hell hoisting madness If you want to stop feeling like JS is trolling you: ✔ Understand how the call stack works ✔ Know the difference between == and === ✔ Stop abusing var like it’s 2009 ✔ Learn promises before crying about async/await ✔ Read the MDN docs, not just YouTube comments Real JS devs don’t copy snippets. They understand why they work. If JavaScript feels weird… Good. It’s weird on purpose. Master the weirdness, and it becomes your superpower. ⚡ #javascript #webdev #frontend #coding #softwareengineering #reactjs #nodejs #programming #developers #typescript #LearningEveryday
To view or add a comment, sign in
-
🚀 The JavaScript CHEAT SHEET I Wish I Had Earlier 👨💻⚡ (Arrays + Strings + DOM + Events — All in just 5 slides!) Tired of googling basic JS methods every time you need them? This cheat sheet gives you clean, minimal, and ready-to-use examples of the most essential JavaScript techniques — all in one place. 🔹 Array Methods ✅ map() – transform items ✅ filter() – select items ✅ find() – get the first match ✅ sort() – reorder data 🔹 String Methods ✅ slice() – extract a part ✅ includes() – check for substring ✅ charAt() – get character at index ✅ padStart() – format output 🔹 Date Methods ✅ Create, format, and manipulate dates ✅ Avoid the usual "date hell" with clean examples 🔹 DOM Methods ✅ createElement() ✅ setAttribute() ✅ innerText ✅ classList.toggle() 🔹 DOM Events ✅ click, submit, keydown, mouseover, scroll Grouped for quick lookup and real-world use. 👇 Who's this for? ✔ Self-taught devs ✔ Frontend beginners ✔ Visual learners ✔ Anyone tired of messy docs 📤 Share with a friend learning JavaScript 📩 Follow me for more carousels, roadmaps & dev-friendly resources! #JavaScript #FrontendDevelopment #WebDevTips #CheatSheet #CodeNewbie #DOMMethods #ReactJS #JSForBeginners #DeveloperTools #AsyncJS #WebDevelopment #LearnToCode
To view or add a comment, sign in
-
💡 Understanding Object Methods in JavaScript Working with objects is fundamental in JS. Here's a quick overview of some powerful methods: Object.keys(obj) → Returns all keys of the object. Object.values(obj) → Returns all values of the object. Object.entries(obj) → Returns key-value pairs as arrays. obj.hasOwnProperty("property") → Checks if the object has a specific property. Object.assign({}, obj, { newProperty: "newValue" }) → Creates a new object by merging existing ones. 👉 View the full example on GitHub: https://lnkd.in/dDN-vDkD #JavaScript #FullStack #100xDevs #WebDevelopment #Coding #JSConcepts #LearnJavaScript
To view or add a comment, sign in
-
💡 JavaScript Trivia: Did you know that in JavaScript, the expression NaN === NaN actually returns false? 🤯 That’s because NaN (Not-a-Number) is special — it’s not equal to anything, not even itself. This behavior follows the IEEE 754 standard for floating-point numbers. So if NaN isn’t equal to itself, how do we check for it? That’s where isNaN() and Number.isNaN() come in. The older isNaN() function tries to convert the value into a number before checking, which can give confusing results — for example, isNaN('hello') returns true because the string can’t be turned into a number. The newer Number.isNaN() is smarter and stricter: it only returns true when the value is literally NaN, not just something that can’t be converted to a number. ✅ Best practice: use Number.isNaN() whenever possible — it’s more predictable and avoids type coercion headaches. A tiny quirk, but one that’s tripped up many JavaScript devs (including me at some point 😅). #JavaScript #WebDevelopment #CodingTips #Programming #Trivia #Fact
To view or add a comment, sign in
-
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
Yah, some tricky parts of js especially!