SKILL BENCHMARK
JavaScript Design Patterns Competency (Intermediate Level)
- 30m
- 30 questions
The JavaScript Design Patterns Competency benchmark measures your ability to recognize and use the Constructor and Factory patterns and other creational design patterns, such as Singleton, Prototype, and Builder. You will be evaluated on your skills in implementing structural design patterns, including the Module, Revealing Module, Facade, Decorator, Mixin, Flyweight, Adapter, Composite, and Proxy. You will also be evaluated on your ability to define and use the Observer and Iterator, Mediator, State, and Command design patterns. A learner who scores high on this benchmark demonstrates that they have the skills to define, set, and apply Creational, Structural, and Behavioral design patterns in JavaScript.
Topics covered
- apply the Composite pattern using jQuery
- apply the decorators for dynamic customizations
- create objects using functions
- define helper functions for the factory pattern
- define helper functions for the Singleton pattern
- define immediately-invoked functions for the factory
- describe how event handling works on the browser
- illustrate inefficient memory usage for granular objects
- implement private functions with the Module pattern
- implement private variables with the Module pattern
- implement publishers and subscribers
- implement the Builder pattern
- implement the Command pattern
- implement the Façade pattern
- implement the Iterator mixin
- implement the Mixin pattern
- implement the Prototype pattern
- implement the Singleton pattern
- iterate over elements in a collection
- publish messages using the publisher and receive them at subscribers
- setting up helper methods to implement the Factory pattern
- set up helper methods for the State pattern
- set up helpers for the Decorator pattern
- set up helpers for the Façade pattern
- set up the Mediator as a workflow object
- use Object.create() and new Object() to create objects
- use the Builder pattern to construct complex objects
- use the Mediator for communication
- use the object literal notation to construct objects
- use the Proxy pattern to cache data on the client