Needless to say how difficult It is to find a professional AngularJS developer. The hiring process usually takes several stages, including skype interview and testing. In this article, we will review the most relevant questions with the answers.
Question 1: Is AngularJS a library or framework? The best definition of Angular JS is a framework, although it is much lighter than an ordinary framework and is sometimes being mistakenly considered to be a library, but it is not. It is totally JavaScript and client-side framework, which is mobile- and desktop comparable.
Question 2: AngularJS version compatibility and optional modules? AngularJS code can be separated into the main module – “angular” and several optional modules – “angular-animate”, “angular-route” and so on, which are dependent on the main module. When AngularJS releases a new version, they update all the modules to the new version. Due to this reason the main module and optional modules do always have the same version, otherwise, an application can break.
Question 3: Is AngularJS a templating system? No, it is not. Of course, at the top level, the AngularJS looks like a templating system, although the main reason why the AngularJS templating system is different – bidirectional data binding. The template is being compiled in the browser and this step provides developers to get a live view, without constantly syncing the view with the model.
Question 4: What do you know about security holes in AngularJS? Like every other web technology, AngularJS is available for various attacks. Besides this fact, AngularJS provides security support from the typical security holes, like cross-site scripting and HTML injection attacks. AngularJS offers round-trip escaping on all strings and XSRF protection for the server-side interaction.
Question 5: Is an open-source Closure Library compatible with AngularJS? Yes, it is. For example, you can use widgets from the Closure Library in AngularJS.
Question 6: Is AngularJS compatible with the jQuery library? Yes, it is. AngularJS is compatible with the jQuery library if it is presented in an application when an application is being bootstrapped. If jQuery not used an app script path, AngularJS can fall back to its own way of implementing of the subset of jQuery that is being called jQLite.
Question 7: What can you say about AngularJS testability? Angular testability is really good. It has an integrated dependency injection framework, which can provide mocks for server-side communication.
Question 8: How to use $watch and $apply in AngularJS $scope? One of the most important parts is that AngularJS uses the digest cycle. It means that this cycle can be considered as a loop, in the process of which AngularJS identifies if there are changes to the variables which are being monitored by the $scopes. $watch helps AngularJS to monitor $scope changes. A $scope variable can be watched by using it in your template by means of expression <span>{{myVar}}</span>or via manually adding by means of the $watch service. $apply enables to integrate changes with the digest cycle, and due to this, you can consider it as an integration mechanism. Every time you make changes of the watched variable attached to the $scope object, AngularJS knows that the changes took place. It happens because AngularJS is already prepared to monitor these changes. If It takes place in the code managed by AngularJS, the digest cycle will work it out. At the same time, you may want to make changes of some value outside of the framework management and see them propagating normally. You have a $scope.myVar value which will be changed by means of a jQuery`s $.ajax() handler. It will take place in the future. Although AngularJS was not instructed to wait on jQuery and for this to take place. Here comes $apply, which can help you to start the digestion cycle clearly. Although you should use this ability only for migrating some data to AngularJS, but never for combining it with the regular AngularJS code, as it can throw “an error” message.
Question 9: How the @ngdoc Directive is being used? The @ngdoc directive allows identifying the template which will be used in rendering the item, which is being documented. For example, a directive may have different properties for filtering and a different way of documenting. The most frequently used types are:
- directive – AngularJS directive
- function – function that will be open to other methods (such as a helper function of the ng module)
- error – minErr error description
- provider – AngularJS provider, such as $compileProvider or $httpProvider.
- overview – a general page (manual, api index)
- object – well-defined object (usually shown as a service)
- service – injectable AngularJS service, like $compile or $http.
- method – method on an object/service/controller
- property – property on an object/service/controller
- event – AngularJS event propagating through the $scope tree.
- filter – AngularJS filter
Question 10: What is the difference between one-way binding and two-way binding?
The majority of templating systems bind data in one direction (one way- data binding) by means of merging template and model components together into a view. After the merge, changes to the model or connected sections of the view are not automatically reflected in the view. Any changes to the view that are being made by a user are not reflected in the model, which makes a developer write code that simultaneously syncs with the view in the model and the model with the view. Angular JS works in a different way and uses two-way data binding. The template is being compiled on the browser, which produces a live view and any changes of the view are immediately reflected in the model, as well as any changes of the model are propagated to the view. That’s how two-day data binding works.
Question 11: What are directives?
Directives can be explained as special markers on a DOM element that can tell HTML compiler to add a specified behavior to the DOM element. Directives start with ng-prefix. Some of AngularJS directives are built-in, including ngClass, ngApp, ngRepeat, ngModel, ngBind and ngInit.
Question 12: List types of directives
Directives can be grouped into four types :
- Comment directives
- Attribute directives
- Element directives
- CSS class directives
Follow the trend – Hire your first remote specialist today