I have been reading Puppeteer API documentation, they have jsHandle and elementHandle (which they state being an extension of jsHandle).
It seems functions like page.evaluateHandle page.$ page.$$ can all return jsHandle/elementHandle which is like an object that exists in-page.
So my question what is jsHandle/elementHandle and what are the differences between the two besides one being an extension of the other?