A lot of times developers confuse the above (library, framework, tool) terminologies. In practice, this terms can have different meaning depending on the context, when and how they are being is used.
The brief explanations given below are based on my personal understanding and it is subject to dissent.
On the other hand when compared to libraries, frameworks are more elaborate. It allows building a complete application at once. Following the construction building example, libraries are like furnitures whereas framework are the architecture in which the whole building is based on. We use framework as template to build our applications.
Below are some JS Frameworks, the list is based on my personal usage, popularity and community support:
- Angular: A front-end framework that helps you create web application
- Ember.js: A framework for ambitious web developers
A tool simply assist in making development easier and simpler. Tools are separated into several categories some of which includes the following. Some JS tools based on different categories. Please note that there are several more out there, I just listed a few which I find interesting:
JS Testing and Debugging Tools
- Protractor: An end-to-end test framework for Angular and AngularJS applications. Protractor runs tests against your application running in a real browser, interacting with it as a user would.
- Yeoman: Helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.
Build and Automation Tools