A limit order is an order that the user places on the order book with a specific price limit, a price limit set by the user. So, when you place a limit order, the transaction will only occur if the market price reaches your limit price (or better). Therefore, a user can use a limit order to buy at a lower price or sell at a price higher than the market price.
 
Unlike market orders, where transactions are executed immediately using the current market price, limit orders are placed on the order book and not executed instantly, this means you save on market moving costs. When should the user use it?
Users are advised to use limit orders when they are not in a hurry to buy or sell. Unlike market orders, limit orders are not executed immediately, so the user has to wait until the bid / ask price is met. Limit orders also allow users to get better buy and sell prices and they are usually placed at support or resistance prices. Users can also break your buy / sell order into several small limit orders, so that the user gets the average selling / buying price.