JavaScript block registration uses the registerBlockType function from @wordpress/blocks package. This function requires a unique block name and configuration object with edit and save components.
The edit component defines how the block appears in the editor interface, while the save component generates the HTML stored in the database for static blocks.
Both edit and save are React components that return JSX. The block name must be unique and match the name used in PHP registration for the block to function properly.