I'm thinking about several things that I couldn't find a clear answer for them although I read a lot of articles on websites and watched a lot of videos on Youtube.
I've heard that everything is an object except the primitive types if they don't define with the 'new' keyword. When I create a function, I know that the built-in 'Function' method is called along with the 'new' keyword and a function will be created. But that 'Function' method is also a function and therefore is an object and must have a constructor and the constructor of Function must have another constructor. This thing reminds me of the concept that if we are created by God, who created the God and who created the God of God and so on and so forth. Is there any end?
I know that there are three reference types in JavaScript: Objects, Functions, and Arrays. If everything is an object in Javascript, the functions and arrays are also objects. So why do we even need to separate the functions and arrays in reference types and show them as independent of the Object data type?