Bird
Raised Fist0
Reactframework~5 mins

JSX vs HTML differences in React - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is JSX in React?
JSX is a syntax extension for JavaScript that looks like HTML. It lets you write UI components in a way that feels like writing HTML but with the power of JavaScript.
Click to reveal answer
beginner
Why do we use className instead of class in JSX?
In JSX, class is a reserved word in JavaScript, so React uses className to assign CSS classes to elements.
Click to reveal answer
intermediate
How do you write inline styles in JSX compared to HTML?
In JSX, inline styles are written as an object with camelCase property names, for example: {'{ color: "red", fontSize: "12px" }'}, unlike HTML which uses a string.
Click to reveal answer
intermediate
What is the difference in how attributes like for are handled in JSX?
JSX uses htmlFor instead of for because for is a reserved word in JavaScript. This is used mainly with <label> elements.
Click to reveal answer
beginner
Can JSX elements have multiple root elements like HTML?
No, JSX requires a single root element. If you want multiple elements, you must wrap them in a parent element or use React fragments.
Click to reveal answer
Which attribute is used in JSX to add CSS classes?
AcssClass
Bclass
CclassName
DstyleClass
How do you write inline styles in JSX?
AAs an object with camelCase keys
BAs a string like in HTML
CUsing CSS files only
DUsing a style tag inside JSX
What must JSX elements have that HTML elements do not require?
AMultiple root elements
BNo attributes
COnly self-closing tags
DA single root element
Which attribute replaces 'for' in JSX when labeling form elements?
AforLabel
BhtmlFor
ClabelFor
DformFor
Can you use regular HTML comments inside JSX?
ANo, use JavaScript comments inside braces
BNo comments allowed
CYes, but only at the top
DYes, <!-- comment --> works
Explain the main differences between JSX and HTML attributes.
Think about reserved words in JavaScript and how JSX adapts HTML.
You got /4 concepts.
    Describe how JSX handles multiple elements compared to HTML.
    Consider how JSX compiles to JavaScript function calls.
    You got /3 concepts.

      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

      1. Step 1: Recall JSX attribute rules

        In JSX, the HTML attribute class is replaced by className because class is a reserved word in JavaScript.
      2. Step 2: Identify correct attribute for CSS classes

        Therefore, to add CSS classes in JSX, you must use className.
      3. Final Answer:

        className -> Option C
      4. 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

      1. Step 1: Understand JSX attribute naming

        In JSX, the HTML attribute for is replaced by htmlFor because for is a reserved word in JavaScript.
      2. Step 2: Check correct casing and spelling

        The correct attribute is htmlFor with capital F, so <label htmlFor="inputId">Name</label> is correct.
      3. Final Answer:

        <label htmlFor="inputId">Name</label> -> Option A
      4. 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

      1. Step 1: Analyze checked attribute in JSX

        In JSX, checked="true" without curly braces sets the prop to the string "true".
      2. 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.
      3. Final Answer:

        A checked checkbox input -> Option B
      4. Quick Check:

        Attribute presence checks uncontrolled checkbox [OK]
      Hint: checked="true" renders checked checkbox (attribute presence) [OK]
      Common Mistakes:
      • Thinking checked="true" leaves checkbox unchecked
      • Expecting string value to cause syntax error
      • Confusing uncontrolled render with controlled components
      4. Identify the error in this JSX snippet:
      const element = <div class="container">Hello</div>;
      medium
      A. Using class instead of className
      B. Using double quotes instead of single quotes
      C. Missing closing tag for div
      D. Using semicolon inside JSX

      Solution

      1. Step 1: Check attribute names in JSX

        JSX does not use the HTML attribute class. Instead, it uses className because class is a reserved word in JavaScript.
      2. Step 2: Verify other parts of the snippet

        The quotes and closing tag are correct. The semicolon is outside JSX and valid in JavaScript.
      3. Final Answer:

        Using class instead of className -> Option A
      4. Quick Check:

        JSX requires className, not class [OK]
      Hint: Replace class with className in JSX attributes [OK]
      Common Mistakes:
      • Using class attribute causes React warnings or errors
      • Thinking quotes style causes errors
      • Confusing semicolon placement inside JSX
      5. You want to apply inline styles to a JSX element to make text red and bold. Which is the correct way?
      hard
      A.
      Text
      B.
      Text
      C.
      Text
      D.
      Text

      Solution

      1. Step 1: Understand JSX style attribute syntax

        In JSX, the style attribute expects a JavaScript object, so you use double curly braces: the outer for embedding JS, the inner for the object.
      2. Step 2: Check property names and values

        CSS properties use camelCase in JSX, so fontWeight is correct. Values are strings like 'red' and 'bold'.
      3. Final Answer:

        <div style={{color: 'red', fontWeight: 'bold'}}>Text</div> -> Option D
      4. Quick Check:

        Use double braces and camelCase for inline styles [OK]
      Hint: Use double braces and camelCase keys for JSX inline styles [OK]
      Common Mistakes:
      • Using string style attribute instead of object
      • Missing curly braces around style object
      • Using CSS property names with hyphens instead of camelCase
      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