Bird
Raised Fist0
Svelteframework~20 mins

Optional parameters in Svelte - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Svelte Optional Parameters Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output when using an optional parameter in a Svelte component?

Consider a Svelte component that accepts a prop with a default value (an optional parameter). What will be rendered if the prop is not passed?

Svelte
<script>
  export let name = "Guest";
</script>

<h1>Hello, {name}!</h1>
A<h1>Hello, undefined!</h1>
B<h1>Hello, Guest!</h1>
C<h1>Hello, !</h1>
DComponent throws an error
Attempts:
2 left
💡 Hint

Think about what default values do when no prop is passed.

📝 Syntax
intermediate
2:00remaining
Which syntax correctly defines an optional parameter with a default value in a Svelte component?

Choose the correct way to define an optional prop count with a default value of 10 in Svelte.

Alet count: number = 10;
Blet count = 10; export count;
Cexport let count = 10;
Dexport count = 10;
Attempts:
2 left
💡 Hint

Remember how Svelte exports props with default values.

❓ state_output
advanced
2:00remaining
What is the output when an optional parameter is updated dynamically?

Given this Svelte component, what will be displayed after clicking the button twice?

Svelte
<script>
  export let start = 5;
  let count = start;
  function increment() {
    count += 1;
  }
</script>

<p>Count: {count}</p>
<button on:click={increment}>Add</button>
ACount: 7
BCount: 5
CCount: 6
DCount: 0
Attempts:
2 left
💡 Hint

Count starts at start and increments by 1 each click.

🔧 Debug
advanced
2:00remaining
Why does this Svelte component fail to use the optional parameter default?

Identify the reason why the default value for title is ignored and undefined is shown.

Svelte
<script>
  export let title;
  if (!title) {
    title = "Default Title";
  }
</script>

<h2>{title}</h2>
ABecause reassigning an exported prop inside the script does not update the reactive value
BBecause the default value must be set in the markup, not script
CBecause Svelte does not allow conditional logic in script
DBecause the prop must be declared with const, not let
Attempts:
2 left
💡 Hint

Think about how Svelte handles exported props and reactivity.

🧠 Conceptual
expert
3:00remaining
How does Svelte handle optional parameters when a parent component passes undefined explicitly?

If a parent component passes undefined explicitly to an optional prop with a default value, what will the child component receive?

AThe child receives <code>null</code> instead of <code>undefined</code>
BThe child uses the default value instead of <code>undefined</code>
CSvelte throws a runtime error for undefined prop
DThe child receives <code>undefined</code>, ignoring the default value
Attempts:
2 left
💡 Hint

Consider how JavaScript treats explicit undefined versus missing props.

Practice

(1/5)
1. In Svelte, how do you make a component prop optional?
easy
A. Use export let propName = defaultValue;
B. Use let propName; without export
C. Use export const propName; without a value
D. Use function propName() {} inside the component

Solution

  1. Step 1: Understand Svelte prop declaration

    Props are declared with export let to receive values from outside.
  2. Step 2: Assign default value to make prop optional

    Assigning a default value like = defaultValue means the prop is optional and uses that value if none is passed.
  3. Final Answer:

    Use export let propName = defaultValue; -> Option A
  4. Quick Check:

    Optional prop = export let with default [OK]
Hint: Add = defaultValue after export let to make prop optional [OK]
Common Mistakes:
  • Forgetting to export the prop
  • Not assigning a default value
  • Using const instead of let for props
2. Which of the following is the correct syntax to define an optional parameter in a JavaScript function inside a Svelte component?
easy
A. function greet(name: 'Guest') { console.log(name); }
B. function greet(name) { console.log(name || 'Guest'); }
C. function greet(name?) { console.log(name); }
D. function greet(name = 'Guest') { console.log(name); }

Solution

  1. Step 1: Recall JavaScript default parameter syntax

    Default values are assigned using = value in the parameter list.
  2. Step 2: Identify correct syntax

    function greet(name = 'Guest') { console.log(name); } uses name = 'Guest', which is valid and makes the parameter optional.
  3. Final Answer:

    function greet(name = 'Guest') { console.log(name); } -> Option D
  4. Quick Check:

    Default parameter = param = value [OK]
Hint: Use param = defaultValue in function signature for optional params [OK]
Common Mistakes:
  • Using TypeScript syntax like name?
  • Using colon instead of equals for default
  • Using logical OR inside function body instead of default param
3. What will be the output of this Svelte component code?
 <script>
  export let greeting = 'Hello';
  export let name;
</script>

<p>{greeting}, {name || 'Friend'}!</p>

If used as <Component /> with no props passed?
medium
A. Hello, Friend!
B. Hello, undefined!
C. , Friend!
D. undefined, Friend!

Solution

  1. Step 1: Check default values of props

    greeting has default 'Hello', name is undefined because no prop passed.
  2. Step 2: Evaluate expression in template

    {name || 'Friend'} uses 'Friend' because name is falsy (undefined).
  3. Final Answer:

    Hello, Friend! -> Option A
  4. Quick Check:

    Default greeting + fallback name = Hello, Friend! [OK]
Hint: Use || to provide fallback for undefined props [OK]
Common Mistakes:
  • Expecting undefined to print as string
  • Forgetting default value for greeting
  • Assuming name defaults to empty string
4. Identify the error in this Svelte component code that tries to make a prop optional:
<script>
  export let count;
  if (count === undefined) {
    count = 10;
  }
</script>
medium
A. The if condition should check for null instead of undefined
B. The default value must be assigned during export, not later
C. You cannot assign to an exported prop inside the script after declaration
D. There is no error; this code works fine

Solution

  1. Step 1: Understand Svelte prop reactivity rules

    Exported props are reactive and should not be reassigned directly inside the script after declaration.
  2. Step 2: Identify correct way to set default

    Default values must be assigned during export, like export let count = 10;, not by reassigning later.
  3. Final Answer:

    You cannot assign to an exported prop inside the script after declaration -> Option C
  4. Quick Check:

    Default props assigned during export only [OK]
Hint: Assign default value in export let, not by reassigning later [OK]
Common Mistakes:
  • Trying to reassign exported props inside script
  • Checking wrong condition for default
  • Assuming reassignment updates prop externally
5. You want to create a Svelte component that accepts an optional size prop with default 'medium' and an optional color prop with default 'blue'. Which code correctly implements this and uses both props in the template?
hard
A. <script> let size = 'medium'; let color = 'blue'; </script> <div style="font-size: {size}; color: {color};">Styled Text</div>
B. <script> export let size = 'medium'; export let color = 'blue'; </script> <div style="font-size: {size}; color: {color};">Styled Text</div>
C. <script> export const size = 'medium'; export const color = 'blue'; </script> <div style="font-size: {size}; color: {color};">Styled Text</div>
D. <script> export let size; export let color; size ||= 'medium'; color ||= 'blue'; </script> <div style="font-size: {size}; color: {color};">Styled Text</div>

Solution

  1. Step 1: Check how to declare optional props with defaults

    Props must be declared with export let and assigned default values directly.
  2. Step 2: Verify usage in template

    Using {size} and {color} inside style attribute is correct.
  3. Final Answer:

    <script> export let size = 'medium'; export let color = 'blue'; </script> <div style="font-size: {size}; color: {color};">Styled Text</div> -> Option B
  4. Quick Check:

    export let with default + use in template = correct [OK]
Hint: Use export let with defaults and reference props in template [OK]
Common Mistakes:
  • Not exporting props
  • Using const instead of let for props
  • Trying to assign defaults after declaration
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