Importing values in Javascript - Time & Space Complexity
When we import values in JavaScript, we want to know how the time to get those values changes as the program grows.
We ask: How much work does importing take when the code or data gets bigger?
Analyze the time complexity of the following code snippet.
import { value1, value2 } from './module.js';
console.log(value1);
console.log(value2);
This code imports two values from another file and prints them.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Importing values from a module.
- How many times: This happens once per import statement.
Importing a fixed number of values takes about the same time no matter how big the program is.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 1 import operation |
| 100 | Still about 1 import operation |
| 1000 | Still about 1 import operation |
Pattern observation: The time does not grow with input size because the import is a single action.
Time Complexity: O(1)
This means importing values takes a constant amount of time regardless of program size.
[X] Wrong: "Importing more values always makes the program slower in a big way."
[OK] Correct: Importing a few values is a single step and does not grow with program size, so it stays fast.
Understanding that imports are quick helps you focus on the parts of code that really affect speed, showing you know what matters.
"What if we imported a very large module with many values? How would the time complexity change?"
Practice
calculate from a file math.js?Solution
Step 1: Understand named imports syntax
Named exports must be imported using curly braces around the exact exported name.Step 2: Match syntax with example
The syntaximport { calculate } from './math.js';correctly imports the named exportcalculate.Final Answer:
import { calculate } from './math.js'; -> Option BQuick Check:
Named import uses curly braces [OK]
- Using default import syntax for named exports
- Forgetting curly braces around named imports
- Trying to access named export as property after import
utils.js?Solution
Step 1: Recall default import syntax
Default exports are imported without curly braces using any name you choose.Step 2: Identify correct syntax
import utils from './utils.js';correctly imports the default export.Final Answer:
import utils from './utils.js'; -> Option DQuick Check:
Default import no braces [OK]
- Using curly braces for default import
- Incorrect braces placement
- Using * as for default import
export const name = 'Alice'; in person.js, what will be the output of this code?import { name } from './person.js';
console.log(name);Solution
Step 1: Understand named export and import
The variablenameis exported as a named export and imported correctly with curly braces.Step 2: Check the logged value
Sincenameis 'Alice',console.log(name);outputs 'Alice'.Final Answer:
Alice -> Option AQuick Check:
Named import logs exported value [OK]
- Forgetting curly braces causing ReferenceError
- Expecting default import without braces
- Confusing undefined with missing import
import { sum } from './math.js'
console.log(sum(2, 3));Assuming
sum is a default export in math.js.Solution
Step 1: Identify export type
The problem statessumis a default export, so it should be imported without curly braces.Step 2: Check import syntax
Using curly braces imports named exports, soimport { sum }is incorrect for default export.Final Answer:
Using curly braces for default export import -> Option CQuick Check:
Default export no braces [OK]
- Confusing default and named imports
- Ignoring export type in import
- Assuming semicolon is mandatory for correctness
// colors.js
export const red = '#FF0000';
export const blue = '#0000FF';
export default 'colors';
// app.js
import colors, { red, green } from './colors.js';
console.log(colors, red, green);What will happen when running
app.js?Solution
Step 1: Analyze exports in colors.js
There is a default export 'colors' and named exports 'red' and 'blue'. No 'green' export exists.Step 2: Analyze import statement in app.js
It imports default ascolorsand namedred, butgreendoes not exist, causing a SyntaxError during module loading.Final Answer:
SyntaxError due to invalid import -> Option AQuick Check:
Missing named export causes import error [OK]
- Thinking missing named import becomes undefined
- Confusing default and named imports
- Expecting ReferenceError at runtime
Ready to prove it?
Pass the test and this pattern moves unknown
