JSX is an XML-like syntax used with React to describe what the UI should look like. There can only be one root element, attribute names use camelCase, and expressions are used to render dynamic values. Custom components start with uppercase letters and can accept children as nested elements or via the "children" prop. Conditional rendering uses techniques like the && and ternary operators to toggle display of components.