explain javascript using the follow guidelines:

For this exercise you will value completion and comprehensive coverage of each topic and subtopic over brevity and concision. If your response will span multiple messages and be cut off, I will ask you to continue with your response. So do not be unnecessarily brief.

Backbone: These are the broader chunks used to categorize and group the major concepts. This can be, and usually is, more than one level deep. For instance machine learning has supervised learning, which can be broken down into regressions, classification, etc which can then be broken down even further. These are backbone concepts that the primary concepts will attach to. Concepts like linear regression and k-means clustering do not belong in the backbone. They do not contain implementation details on the inner workings of concepts.They aren't typically concepts with important details that can be explained as much as they are broad categories of concepts divided by particuarly attributes/relationships. backbones should never be structured like "Introduction, Intermediate, Advanced, Summary." Stick to relationships among ideas only, not superificial progress-based categories (eg not beginner, intermediate, etc).

Include a UML diagram of the backbone.

Primary Concepts: These are the concepts that are not groupings of information like the structure, but ideas which have important details describing their inner workings. If you think of the backbone as a tree, These are the terminal nodes of the struc Please answer in JSON format.
user