JSX is not a string or HTML but a syntax that compiles to JavaScript calls.
Always use camelCase for event handlers like onClick in JSX.
Summary
JSX looks like HTML but uses JavaScript rules.
Use className instead of class, and htmlFor instead of for.
Attributes like styles and booleans use JavaScript syntax inside JSX.
Practice
(1/5)
1. Which attribute should you use in JSX to add CSS classes to an element?
easy
A. cssClass
B. class
C. className
D. styleClass
Solution
Step 1: Recall JSX attribute rules
In JSX, the HTML attribute class is replaced by className because class is a reserved word in JavaScript.
Step 2: Identify correct attribute for CSS classes
Therefore, to add CSS classes in JSX, you must use className.
Final Answer:
className -> Option C
Quick Check:
JSX uses className, not class [OK]
Hint: Remember: JSX uses className, not class for CSS classes [OK]
Common Mistakes:
Using 'class' instead of 'className' causes errors
Confusing 'className' with 'cssClass'
Trying to use 'styleClass' which doesn't exist
2. Which of the following is the correct way to write a label with a 'for' attribute in JSX?
easy
A. Name
B. Name
C. Name
D. Name
Solution
Step 1: Understand JSX attribute naming
In JSX, the HTML attribute for is replaced by htmlFor because for is a reserved word in JavaScript.
Step 2: Check correct casing and spelling
The correct attribute is htmlFor with capital F, so <label htmlFor="inputId">Name</label> is correct.
Final Answer:
<label htmlFor="inputId">Name</label> -> Option A
Quick Check:
Use htmlFor, not for in JSX labels [OK]
Hint: Use htmlFor (camelCase) instead of for in JSX labels [OK]
Common Mistakes:
Using 'for' attribute directly causes syntax errors
Writing 'htmlfor' with lowercase f is incorrect
Using non-existent attributes like 'forId'
3. What will be the rendered output of this JSX code?
const element = <input type="checkbox" checked="true" />;
ReactDOM.render(element, document.getElementById('root'));
medium
A. A checkbox input with checked attribute as string
B. A checked checkbox input
C. Syntax error due to checked attribute value
D. An unchecked checkbox input
Solution
Step 1: Analyze checked attribute in JSX
In JSX, checked="true" without curly braces sets the prop to the string "true".
Step 2: Understand rendering of boolean attributes
React renders <input type="checkbox" checked="true" />. Browsers treat the presence of the checked attribute (any non-empty value) as checked for uncontrolled checkboxes.