Smart contracts can be deployed and executed on the Ethereum blockchain using web3.js. Web3.js is a JavaScript API that allows interaction with Ethereum clients like Geth to deploy contracts, call contract functions, and get information from the blockchain. Contracts are written in languages like Solidity and deployed through transactions that store the compiled code at an address. Once deployed, the contract code and data resides on the blockchain and can be interacted with through web3.js by calling functions or accessing public variables.