There was a kind of question or confusion I always had with the definition of what is an app (now called add-in). Also this confusion happens to me because of the name changes.
You can have two types (SharePoint-hosted and Cloud hosted).
And when you create a custom list through the UI you select the option Add an App you are using the Sharepoint-hosted app.
And according the old definition of SharePoint-Hosted App - all the objects created by developers are stored in the content database. And all code should be executed in the browser. (JavaScript)
So, if I create a custom list it stores all the objects in the content database (javaScript objects), for example, and when it is loaded it is executed in the browser ?
According with the newer definition.
All business logic in a SharePoint-hosted add-in uses JavaScript either directly on a custom page or in a JavaScript file that is referenced from a custom page. A JavaScript version of the SharePoint object model (JSOM) is available to make it simple for the add-in to perform create, read, update, and delete (CRUD) operations on SharePoint data.
Custom pages in a SharePoint-hosted add-in are generally ASP.NET pages (ASPX) and they can declaratively reference ASP.NET and in-the-box SharePoint controls, but there can be no code behind. However, you can customize the SharePoint controls using a client-side rendering option and custom JavaScript.
But how can they have an ASPX pages and can just have code that is possible to be executed on the browser only, according with the old definion ?