Bird
Raised Fist0
Javascriptprogramming~5 mins

Module scope in Javascript

Choose your learning style10 modes available
Introduction

Module scope keeps variables and functions private inside a file. This helps avoid mixing up names and keeps code organized.

When you want to keep helper functions hidden from other parts of your program.
When you want to share only specific parts of your code with other files.
When you want to avoid name conflicts between variables in different files.
When building bigger projects with many files to keep code clean and safe.
Syntax
Javascript
export const publicValue = 42;

const privateValue = 10;

function privateFunction() {
  return privateValue;
}

export function publicFunction() {
  return privateFunction() + publicValue;
}

Variables and functions not exported stay private to the module.

Use export keyword to share parts of the module.

Examples
secret is private, visible is public and can be used in other files.
Javascript
const secret = 'hidden';

export const visible = 'shown';
helper is private, only main is exported.
Javascript
function helper() {
  return 5;
}

export function main() {
  return helper() * 2;
}
Sample Program

In mathModule.js, secretNumber is private. Only addFive is exported and used in app.js.

Javascript
// file: mathModule.js
const secretNumber = 7;

export function addFive(num) {
  return num + secretNumber;
}

// file: app.js
import { addFive } from './mathModule.js';

console.log(addFive(3));
OutputSuccess
Important Notes

Each JavaScript file is a module with its own scope by default when using ES modules.

Variables not exported cannot be accessed from other files.

Use import to bring exported parts into another module.

Summary

Module scope keeps code private inside files.

Use export to share code outside the module.

Helps avoid name conflicts and keeps code organized.

Practice

(1/5)
1. What does module scope mean in JavaScript?
easy
A. All variables are global and accessible everywhere
B. Variables and functions are private to the file unless exported
C. Functions can only be used inside loops
D. Variables must be declared with var only

Solution

  1. Step 1: Understand module scope concept

    Module scope means code inside a file is private unless explicitly shared.
  2. Step 2: Compare options with this concept

    Only Variables and functions are private to the file unless exported correctly states variables/functions are private unless exported.
  3. Final Answer:

    Variables and functions are private to the file unless exported -> Option B
  4. Quick Check:

    Module scope = private unless exported [OK]
Hint: Remember: module code is private unless exported [OK]
Common Mistakes:
  • Thinking all variables are global
  • Confusing module scope with block scope
  • Believing functions must be inside loops
2. Which of the following is the correct way to export a function named greet from a module?
easy
A. export function greet() {}
B. function export greet() {}
C. export greet() {}
D. export = greet()

Solution

  1. Step 1: Recall correct export syntax

    To export a function, use export function functionName() {}.
  2. Step 2: Check each option

    export function greet() {} matches the correct syntax; others are invalid or incorrect.
  3. Final Answer:

    export function greet() {} -> Option A
  4. Quick Check:

    Export function syntax = export function name() [OK]
Hint: Use 'export function' before function name [OK]
Common Mistakes:
  • Placing export after function keyword
  • Using incorrect export assignment syntax
  • Missing parentheses in function declaration
3. Given this module code:
const secret = 42;
export const visible = 'hello';

console.log(typeof secret);
console.log(typeof visible);

What is the output when this module runs?
medium
A. "number" and "string"
B. "undefined" and "string"
C. "number" and "undefined"
D. ReferenceError for secret

Solution

  1. Step 1: Understand variable scope and export

    Both secret and visible exist inside the module; secret is private, visible is exported.
  2. Step 2: Check typeof outputs inside the same module

    Inside the module, both variables exist, so typeof secret is "number" and typeof visible is "string".
  3. Final Answer:

    "number" and "string" -> Option A
  4. Quick Check:

    typeof secret = number, typeof visible = string [OK]
Hint: Inside module, all declared variables exist [OK]
Common Mistakes:
  • Thinking private variables are undefined inside module
  • Confusing export with variable existence
  • Expecting ReferenceError inside same file
4. What is wrong with this module code?
const count = 10;
export count = 20;
medium
A. Cannot export a variable twice
B. count is not declared before export
C. Syntax error: export cannot be used with assignment
D. No error, code works fine

Solution

  1. Step 1: Analyze export syntax

    Export keyword cannot be used with assignment like export count = 20;. It must be export const count = 20; or export existing variables.
  2. Step 2: Identify error type

    This causes a syntax error because export expects declaration or named export, not assignment.
  3. Final Answer:

    Syntax error: export cannot be used with assignment -> Option C
  4. Quick Check:

    Export syntax must declare or export existing variables [OK]
Hint: Export must declare or export, not assign [OK]
Common Mistakes:
  • Trying to export by assignment
  • Missing const/let/var with export
  • Assuming export can change variable value
5. You have two modules:
// file1.js
const secret = 'hidden';
export const data = 123;

// file2.js
import { data } from './file1.js';
console.log(secret);
console.log(data);

What will happen when file2.js runs?
hard
A. Logs undefined and 123
B. Logs 'hidden' and 123
C. SyntaxError due to import
D. ReferenceError: secret is not defined

Solution

  1. Step 1: Understand module scope and imports

    The variable secret is private to file1.js and not exported, so it cannot be accessed in file2.js.
  2. Step 2: Predict runtime behavior

    Trying to access secret in file2.js causes a ReferenceError. The imported data logs correctly.
  3. Final Answer:

    ReferenceError: secret is not defined -> Option D
  4. Quick Check:

    Private variables cause ReferenceError outside module [OK]
Hint: Only exported variables are accessible in other modules [OK]
Common Mistakes:
  • Assuming private variables are imported automatically
  • Confusing import syntax errors with runtime errors
  • Expecting undefined instead of ReferenceError
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard