- Tools and Extensions
- Software Development
- AI
- Expert Interviews
- Cloud Computing
- Industry Insights
- Tech for Business
Subscribe to Updates
Subscribe to our newsletter for updates, insights, tips, and exclusive content!
Subscribe to our newsletter for updates, insights, tips, and exclusive content!
JavaScript is a vast language, and no matter how much experience you have, there’s always something new to learn. Whether you’re preparing for an interview or just want to challenge yourself, testing your JavaScript knowledge is a great way to identify gaps and improve.
Below are seven carefully crafted JavaScript questions—some tricky, some fundamental—that will help you gauge your expertise. Take a moment to think through each one before checking the explanation!
1. What will be logged in the console?
"122"
→ The first +
converts 1
into a string ("1"
) and then concatenates."32"
→ The +"2"
is treated as a number, so 1 + 2 = 3
, then concatenated with "2"
."02"
→ -"1"
is -1
, so 1 + (-1) = 0
, then concatenated with "2"
."112"
→ +"1"
is still a number (1
), but "1" + "2"
is string concatenation."NaN2"
→ "A" - "B"
results in NaN
, then concatenated with "2"
.NaN
→ "A" - "B"
is NaN
, and NaN + 2
is still NaN
.Takeaway: JavaScript’s +
operator does both addition and concatenation. If any operand is a string, it switches to concatenation mode.
null
is an explicit absence of value. You assign null
when you want to indicate that “this variable has no value on purpose.”undefined
means “this variable has been declared but hasn’t been assigned a value yet.”Takeaway:
undefined
is often unintentional and can happen when you forget to initialize a variable.null
is intentional and should be assigned when you want to clear a value.It returns undefined
. Why?
Because JavaScript automatically inserts a semicolon after return
, making it behave like:
So, the function exits before reaching the object.
Fix:
Takeaway: Always put the returned object on the same line as return
to avoid implicit semicolon insertion.
==
performs type coercion, meaning it tries to convert both values to a common type before comparing.===
(strict equality) compares both value and type without conversion.Examples:
Takeaway: Always use ===
unless you have a very specific reason to allow type coercion.
This logs:
Why? Because var i
is not block-scoped; all callbacks reference the same i
, which becomes 3
after the loop finishes.
Fix using let
(block-scoped variable):
Now it logs:
Takeaway:
var
is function-scoped; let
is block-scoped.This prints undefined
!
Why?
extracted
is a reference to obj.getValue
, but it’s called without an object context (this
is now window
in browsers or undefined
in strict mode).Fix:
Takeaway:
this
depends on how a function is called, not where it’s defined..bind(obj)
to fix the context.It evaluates to true
.
Here’s why:
Breaking it down:
![]
converts []
(which is truthy) to false
.false
is coerced to 0
, and []
is coerced to ""
(empty string), which is also 0
.0 == 0
is true
.Takeaway: JavaScript’s loose equality can be wild! Avoid ==
when possible.
If you found these questions tricky, that’s a good thing—it means you’re challenging yourself! JavaScript is full of quirks, and understanding these helps you write cleaner, more predictable code.
You may also like:
1) 5 Common Mistakes in Backend Optimization
2) 7 Tips for Boosting Your API Performance
3) How to Identify Bottlenecks in Your Backend
4) 8 Tools for Developing Scalable Backend Solutions
5) 5 Key Components of a Scalable Backend System
6) 6 Common Mistakes in Backend Architecture Design
7) 7 Essential Tips for Scalable Backend Architecture
8) Token-Based Authentication: Choosing Between JWT and Paseto for Modern Applications
9) API Rate Limiting and Abuse Prevention Strategies in Node.js for High-Traffic APIs
Read more blogs from Here
Share your experiences in the comments, and let’s discuss how to tackle them!
Follow me on Linkedin