Dynamic typing means JavaScript can change the type of a variable while the program runs. This helps write flexible and simple code.
When you want to store different types of data in the same variable during a program.
When you don't want to worry about declaring variable types before using them.
When you want quick and easy coding without strict rules about data types.
Syntax
Javascript
let variable = value;
// variable can hold any type and can change type later
You do not declare the type of a variable explicitly.
The type of the variable is decided automatically based on the value assigned.
Examples
The variable data starts as a number, then changes to a string, then to a boolean.
Javascript
let data = 10;
data = "hello";
data = true;
Here, value changes from a number to a string because of adding text.
Javascript
let value = 5;
value = value + " apples";
Sample Program
This program shows how the variable example changes its type from number to string to object.
Javascript
let example = 42;
console.log(typeof example, example); // number
example = "Now I am a string!";
console.log(typeof example, example); // string
example = { name: "Alice" };
console.log(typeof example, example); // object
OutputSuccess
Important Notes
Because types can change, be careful to avoid unexpected bugs.
Use typeof to check the current type of a variable.
Dynamic typing makes JavaScript easy to start with but requires attention as programs grow.
Summary
JavaScript variables can hold any type and change types anytime.
This flexibility is called dynamic typing.
It helps write simple code but needs care to avoid mistakes.
Practice
(1/5)
1. What does dynamic typing in JavaScript mean?
easy
A. Variables must be declared with a fixed type
B. Variables can hold any type and change types anytime
C. JavaScript does not allow variables
D. Types are checked only at compile time
Solution
Step 1: Understand variable typing in JavaScript
JavaScript variables do not have fixed types and can hold any value type.
Step 2: Define dynamic typing
Dynamic typing means variables can change their type during program execution.
Final Answer:
Variables can hold any type and change types anytime -> Option B
Quick Check:
Dynamic typing = variables change types [OK]
Hint: Remember: JavaScript variables are flexible with types [OK]
Common Mistakes:
Thinking variables have fixed types like in Java
Confusing dynamic typing with static typing
Believing JavaScript checks types before running
2. Which of the following is the correct way to declare a variable that can hold any type in JavaScript?
JavaScript uses let, var, or const without type annotations.
Step 2: Check each option
let x = 5; uses let correctly. int x = 5; uses int which is not valid in JavaScript. var x: number = 5; uses TypeScript syntax. const x = 'hello'; is valid but declares a constant, not a variable that can change.
Final Answer:
let x = 5; -> Option A
Quick Check:
Use let/var/const without types [OK]
Hint: Use let or var without type annotations [OK]
Common Mistakes:
Using type keywords like int or number in plain JavaScript
Confusing const with let for variable declaration
Trying to declare types explicitly in JavaScript
3. What will be the output of this code?
let value = 10;
value = 'hello';
console.log(typeof value);
medium
A. "number"
B. "undefined"
C. "string"
D. TypeError
Solution
Step 1: Track variable type changes
Initially, value is a number 10, then reassigned to string 'hello'.
Step 2: Evaluate typeof operator
typeof value returns the current type, which is "string" after reassignment.
Final Answer:
"string" -> Option C
Quick Check:
typeof after reassignment = "string" [OK]
Hint: typeof shows current type after reassignment [OK]
Common Mistakes:
Assuming type stays as number after reassignment
Confusing typeof output with variable value
Expecting an error when changing types
4. Find the error in this code snippet:
let data = 5;
data = true;
console.log(data.toFixed(2));
medium
A. TypeError because boolean has no toFixed method
B. No error, outputs "5.00"
C. SyntaxError due to reassignment
D. ReferenceError for data variable
Solution
Step 1: Understand variable type changes
Variable data starts as number 5, then changes to boolean true.
Step 2: Check method call on boolean
toFixed is a method for numbers, not booleans, so calling it on a boolean causes a TypeError.
Final Answer:
TypeError because boolean has no toFixed method -> Option A
Quick Check:
Calling number method on boolean causes TypeError [OK]
Hint: Check method compatibility with current variable type [OK]
Common Mistakes:
Assuming toFixed works on booleans
Thinking reassignment causes syntax error
Ignoring runtime errors from wrong method calls
5. You want to write a function that accepts any type of input and returns its type as a string. Which code correctly uses dynamic typing to achieve this?
function getType(input) {
// Your code here
}
hard
A. return typeof input.toString();
B. return input.type;
C. return input.constructor;
D. return typeof input;
Solution
Step 1: Understand typeof operator
typeof returns the type of any JavaScript value as a string.
Step 2: Evaluate each option
return typeof input; correctly returns the type string. return input.type; tries to access a property that may not exist. return input.constructor; returns a function, not a string. return typeof input.toString(); returns "string" always because toString() returns a string.
Final Answer:
return typeof input; -> Option D
Quick Check:
typeof returns type string for any input [OK]
Hint: Use typeof to get type as string for any value [OK]
Common Mistakes:
Using .type property which may be undefined
Returning constructor function instead of string
Calling toString() then typeof, always returns "string"
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.