--- title: JSX --- # JSX > JSX is short for JavaScript XML. JSX is an expression which uses valid HTML statements within JavaScript. You can assign this expression to a variable and use it elsewhere. You can combine other valid JavaScript expressions and JSX within these HTML statements by placing them within braces (`{}`). Babel further compiles JSX into an object of type `React.createElement()`. ### Single-line & Multi-line expressions Single-line expression are simple to use. ```jsx const one =

Hello World!

; ``` When you need to use multiple lines in a single JSX expression, write the code within a single parenthesis. ```jsx const two = ( ); ``` ### Using only HTML tags ```jsx const greet =

Hello World!

; ``` ### Combining JavaScript expression with HTML tags We can use JavaScript variables within braces. ```jsx const who = "Quincy Larson"; const greet =

Hello {who}!

; ``` We can also call other JavaScript functions within braces. ```jsx function who() { return "World"; } const greet =

Hello {who()}!

; ``` ### Only a single parent tag is allowed A JSX expression must have only one parent element. We can have multiple elements nested within the parent element. ```jsx // This is valid. const tags = (

Hello World!

This is my special list:

); // This is not valid. const tags = (

Hello World!

This is my special list:

); ``` ### All Tags Must Be Closed In HTML, there are self-closing tags such as `img`, `br`, `input`, and `hr`. This means that either of these methods are valid: ```html ``` Self-closing (sometimes referred to as **void**) tags can be rendered with or without a closing forward slash. However, with JSX, _all_ tags must be closed. The following JSX is invalid: ```javascript const email = ; ``` Closing the `input` tag will make the JSX valid: ```javascript const email = ; ``` ### JSX Map Functionality You can use the built-in Javascript map functionality in JSX. This will allow you to iterate over a given list in your React application. ```javascript const list = [ { title: 'Harry Potter and The Goblet of Fire', author: 'JK Rowling', genre: 'Fiction, Fantasy', }, { title: 'Extreme Ownership: How US Navy Seals Lead and Win', author: 'Jocko Willink, Leif Babin', genre: 'Biography, Personal Narrative', }, ]; class Example extends Component { // component info here }; ``` We use the curly braces to encapsulate our JSX: ```javascript class Example extends Component { render(){ return (
{list.map(function(item) { return
{item.title}
; })}
} }; export default Example; ``` There you got it! We used JSX's map to convert a list of book details to HTML elements to the page. See more information on how to use maps below. ### More Information - [Introducing JSX](https://reactjs.org/docs/introducing-jsx.html) - [More Info On Using Maps](https://reactjs.org/docs/lists-and-keys.html)