The smart grid is widely considered to be the informationization of the power grid. As an essential characteristic of the smart grid, demand response can reschedule the users' energy consumption to reduce the operating expense from expensive generators, and further to defer the capacity addition in the long run. This survey comprehensively explores four major aspects: 1) programs; 2) issues; 3) approaches; and 4) future extensions of demand response. Specifically, we first introduce the means/tariffs that the power utility takes to incentivize users to reschedule their energy usage patterns. Then we survey the existing mathematical models and problems in the previous and current literatures, followed by the state-of-the-art approaches and solutions to address these issues. Finally, based on the above overview, we also outline the potential challenges and future research directions in the context of demand response.