This Svelte component shows a welcome message with a name and the number of new messages. When you click the button, the message count increases and the page updates automatically.
Svelte
<script>
let name = 'Alice';
let count = 3;
</script>
<h1>Welcome, {name}!</h1>
<p>You have {count} new messages.</p>
<button on:click={() => count++} aria-label="Add message">Add Message</button>
OutputSuccess
Important Notes
Svelte tracks variables used inside { } and updates only those parts of the page when the variables change.
Always use let for variables you want to update so Svelte can react to changes.
Summary
Template syntax uses { } to insert dynamic data into HTML.
Svelte updates the page automatically when data changes.
This makes it easy to build interactive and live-updating interfaces.
Practice
(1/5)
1. In Svelte, why do we use curly braces { } inside the template?
easy
A. To write comments that are ignored by the browser
B. To insert dynamic data or expressions into the HTML output
C. To define CSS styles inside the component
D. To declare variables in the script section
Solution
Step 1: Understand the role of curly braces in Svelte templates
Curly braces { } are used to embed JavaScript expressions or variables inside the HTML markup so that their values appear dynamically.
Step 2: Differentiate from other uses
Curly braces are not for comments, CSS, or variable declarations; those have other syntax.
Final Answer:
To insert dynamic data or expressions into the HTML output -> Option B
Quick Check:
Curly braces = dynamic content insertion [OK]
Hint: Curly braces show variables inside HTML [OK]
Common Mistakes:
Thinking curly braces are for comments
Confusing with CSS or script syntax
Using parentheses instead of braces
2. Which of the following is the correct way to display a variable name inside a Svelte template?
easy
A. <p>$(name)</p>
B. <p>{{name}}</p>
C. <p>{name}</p>
D. <p>[name]</p>
Solution
Step 1: Recall Svelte's template syntax for variables
Svelte uses single curly braces { } to insert variables inside HTML.
Step 2: Check each option's syntax
<p>{name}</p> uses {name}, which is correct. Options A, C, and D use invalid or incorrect syntax for Svelte.
Final Answer:
<p>{name}</p> -> Option C
Quick Check:
Use single braces for variables [OK]
Hint: Use single curly braces for variables [OK]
Common Mistakes:
Using double braces like {{name}}
Using $() instead of {}
Using square brackets []
3. Consider this Svelte code snippet:
<script>
let count = 3;
</script>
<p>Count is {count} now.</p>
What will be rendered on the page?
medium
A. Count is 3 now.
B. Count is {count} now.
C. Count is count now.
D. Syntax error, nothing renders.
Solution
Step 1: Identify the variable and its value
The variable count is set to 3 in the script.
Step 2: Understand template rendering
The template uses {count} which inserts the value 3 into the paragraph.
Final Answer:
Count is 3 now. -> Option A
Quick Check:
Variable value replaces braces [OK]
Hint: Variables inside braces show their current value [OK]
Common Mistakes:
Thinking braces print variable name literally
Expecting syntax error from braces
Confusing variable with string
4. What is wrong with this Svelte template code?
<script>
let message = 'Hello';
</script>
<p>{message</p>
medium
A. Missing closing brace '}' after message
B. Variable message is not declared
C. Curly braces should be double like {{message}}
D. Script tag should be outside the component
Solution
Step 1: Check the template syntax carefully
The opening brace { is present but the closing brace } after message is missing.
Step 2: Understand consequences of missing brace
Without the closing brace, Svelte cannot parse the expression, causing a syntax error.
Final Answer:
Missing closing brace '}' after message -> Option A
Quick Check:
Every { must have a matching } [OK]
Hint: Check for matching braces in template expressions [OK]
Common Mistakes:
Forgetting to close curly braces
Using double braces instead of single
Misplacing script tags
5. You want to display a user's full name dynamically in Svelte. You have two variables: firstName and lastName. Which template syntax correctly renders the full name with a space between them?
hard
A. <p>{firstName.concat(' ', lastName)}</p>
B. <p>{firstName, ' ', lastName}</p>
C. <p>{firstName & ' ' & lastName}</p>
D. <p>{firstName + ' ' + lastName}</p>
Solution
Step 1: Understand string concatenation in JavaScript expressions
In Svelte templates, expressions inside braces are JavaScript. Using + concatenates strings correctly.
Step 2: Evaluate each option's validity
<p>{firstName + ' ' + lastName}</p> uses firstName + ' ' + lastName, which is valid. <p>{firstName, ' ', lastName}</p> uses commas which do not concatenate strings. <p>{firstName & ' ' & lastName}</p> uses & which is invalid in JS. <p>{firstName.concat(' ', lastName)}</p> uses concat method correctly with closing parenthesis.
Final Answer:
<p>{firstName + ' ' + lastName}</p> -> Option D
Quick Check:
Use + to join strings inside braces [OK]
Hint: Use + to join strings inside { } [OK]
Common Mistakes:
Using commas instead of + for concatenation
Using & instead of +
Incorrect method calls without parentheses
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.