📖 Scenario: You are building a small JavaScript module system where one module exports a default function, and another module imports and uses it.
🎯 Goal: Create a module that exports a default function, then import and use that function in another file.
📋 What You'll Learn
Create a JavaScript file named greet.js that exports a default function called greet.
The greet function should return the string 'Hello, world!'.
Create another JavaScript file named app.js that imports the default export from greet.js.
Call the imported function and print its return value using console.log.
💡 Why This Matters
🌍 Real World
Default exports are used to share one main value or function from a JavaScript module, making it easy to import and use in other parts of an application.
💼 Career
Understanding default exports is essential for working with modern JavaScript frameworks and libraries, as well as organizing code in professional projects.
Progress0 / 4 steps
1
Create the default export function
Create a file named greet.js and write a default export function called greet that returns the string 'Hello, world!'.
Javascript
Hint
Use export default function greet() { return 'Hello, world!'; } to export the function.
2
Import the default export
In a new file named app.js, import the default export from greet.js using the name greet.
Javascript
Hint
Use import greet from './greet.js'; to import the default export.
3
Call the imported function
In app.js, call the imported greet function and store the result in a variable named message.
Javascript
Hint
Call the function with greet() and assign it to message.
4
Print the message
In app.js, print the message variable using console.log.
Javascript
Hint
Use console.log(message); to print the message.
Practice
(1/5)
1. What is a default export in JavaScript modules?
easy
A. A single main value or function exported from a file without curly braces when importing.
B. Multiple named values exported from a file using curly braces when importing.
C. A way to export variables only, not functions.
D. A special export that requires double curly braces when importing.
Solution
Step 1: Understand export types
JavaScript modules can export multiple named items or one default item.
Step 2: Identify default export usage
Default export is a single main export imported without curly braces.
Final Answer:
A single main value or function exported from a file without curly braces when importing. -> Option A
Quick Check:
Default export = single main export without braces [OK]
Hint: Default exports import without braces, named exports need braces [OK]
Common Mistakes:
Confusing default export with named exports
Using curly braces when importing default export
Thinking default export can export multiple items
2. Which of the following is the correct syntax to export a default function named greet?
easy
A. default export function greet() {}
B. export function default greet() {}
C. export default function greet() {}
D. export greet default function() {}
Solution
Step 1: Recall default export syntax
The correct syntax is to write export default followed by the function declaration.
Step 2: Check each option
Only export default function greet() {} matches the correct syntax: export default function greet() {}.
Final Answer:
export default function greet() {} -> Option C
Quick Check:
export default + function name = correct syntax [OK]
Hint: Remember: 'export default' comes before function name [OK]
Common Mistakes:
Placing 'default' after function name
Using 'default export' instead of 'export default'
Mixing order of keywords
3. Given the file math.js with content:
export default function add(a, b) { return a + b; }
What will be the output of this code?
import add from './math.js';
console.log(add(3, 4));
medium
A. undefined
B. 7
C. TypeError
D. NaN
Solution
Step 1: Understand import of default export
The function add is exported as default and imported without braces correctly.
Step 2: Evaluate function call
Calling add(3, 4) returns 3 + 4 = 7, which is logged.
Final Answer:
7 -> Option B
Quick Check:
Default import calls function correctly = 7 [OK]
Hint: Default export imports as named variable, call normally [OK]
Common Mistakes:
Using curly braces when importing default export
Expecting undefined because of wrong import
Confusing default export with named export
4. Identify the error in this code snippet:
import { greet } from './hello.js';
export default function greet() { return 'Hi'; }
medium
A. Cannot import default export using curly braces.
B. Function cannot be named greet when exported default.
C. Missing semicolon after export statement.
D. Default export must be a variable, not a function.
Solution
Step 1: Check import syntax
Importing default export must be done without curly braces, but here curly braces are used.
Step 2: Confirm export syntax
Exporting default function named greet is valid, so no error there.
Final Answer:
Cannot import default export using curly braces. -> Option A
Quick Check:
Default import no braces, braces cause error [OK]
Hint: Default exports import without braces; braces mean named import [OK]
Common Mistakes:
Using curly braces to import default export
Thinking default export must be unnamed
Assuming semicolon is mandatory for export
5. You have two files:
// file1.js
const value = 42;
export default value;
// file2.js
import val from './file1.js';
console.log(val);
How can you change file1.js to export both value as default and a named constant name with value 'Answer'?
hard
A. Cannot export default and named exports together in one file.
B. Change default export to named export for value and export name as default.
C. Use export default { value, name }; to export both.
D. Add export const name = 'Answer'; alongside default export.
Solution
Step 1: Understand export combinations
JavaScript allows one default export and multiple named exports in the same file.
Step 2: Add named export alongside default
Adding export const name = 'Answer'; exports a named constant while keeping default export.
Final Answer:
Add export const name = 'Answer'; alongside default export. -> Option D
Quick Check:
Default + named exports can coexist [OK]
Hint: Default export plus named exports can be in same file [OK]
Common Mistakes:
Thinking default and named exports cannot coexist
Trying to export multiple defaults
Using object as default export to hold multiple values
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.