Content & privacy
Languages · INTERVIEW GUIDE

JavaScript & TypeScript

Scope, closures, async behavior, object identity, and the type system.

Practice this topic
Filters
7 questions

What is an execution context and call stack?

JavaScript & TypeScript·Scope & execution

An execution context is the information JavaScript uses while running a piece of code, including its variables, scope and this value. The call stack tracks which function is currently running and where execution should return. Each function call adds a context, and returning removes it.

Foundation2 min read

What is scope? What does lexical mean?

JavaScript & TypeScript·Scope & execution

Scope is the part of a program where a variable can be accessed. JavaScript uses lexical scope, which means the available outer variables depend on where a function was defined, not where it is later called. The engine searches outward through surrounding scopes when a name is not found locally.

Foundation2 min read

What is the difference between var, let and const?

JavaScript & TypeScript·Scope & execution

var, let and const declare variables, but they have different scope and initialization rules. let and const are block-scoped, making it easier to keep a variable inside the code that needs it. const prevents reassignment of the binding; it does not make an object immutable.

Foundation2 min read

What are hoisting and the TDZ (Temporal Dead Zone)?

JavaScript & TypeScript·Scope & execution

Hoisting is JavaScript's behavior of processing declarations before executing the code in a scope. Because of this, a function declaration can usually be called before its line appears, while variables behave differently depending on how they are declared.

Foundation2 min read

Are objects passed by reference?

JavaScript & TypeScript·Scope & execution

JavaScript passes every argument by value. For an object, the copied value is a reference to that object, so the caller and function can still reach the same underlying object. This explains why changing a property affects the caller, but assigning a new object to the parameter does not.

Foundation2 min read

What is the difference between == and ===?

JavaScript & TypeScript·Scope & execution

== is loose equality: it may convert values to compatible types before comparing them. === is strict equality: it compares without that conversion. Strict equality usually makes application checks easier to understand because strings, numbers and booleans are not silently treated as the same value.

Foundation2 min read

What are null, undefined and NaN?

JavaScript & TypeScript·Scope & execution

undefined usually means a value has not been supplied, while null is commonly used to mark an intentionally empty value. NaN means a numeric calculation or conversion did not produce a valid number. These are different cases, so an API should not treat them as interchangeable without a clear rule.

Foundation2 min read

Difficulty is an editorial estimate. Completion means you chose to mark a question as understood.