One of the reasons you might be getting this error is because you are trying to use the client object model without the sp.js file being loaded.
Other post regarding errors you might be getting related to the client object model and sp.js
This video will demonstrate how to populate an HTML drop down list control with SharePoint list column values. I’ve created a visual web part in Visual Studio 2010 and used the client object model to demonstrate this. Why would I need to use the client object model? When developing for sandboxed solutions, the whole server object model is not open for use. In some cases, such as developing for SharePoint Online, client object model will be useful if not absolutely necessary. However, you can populate a drop down list with the server object model if you prefer.