1. Explain me what are the disadvantages of using JavaScript?

Experienced coders won't just be able to rave about their favorite language's strengths-they will also be able to talk about its weaknesses. JavaScript's main weakness is security. Look for answers on how it can be exploited. A secondary weakness is JavaScript's ubiquity and versatility-it can be a double-edged sword in that there's a lot of room for programming quirks that can lead to inconsistent performance across different platforms.

2. Explain me which frameworks are you most familiar with?

You can tell a lot about a programmer from the frameworks they're familiar with-AngularJS, React, jQuery, Backbone, Aurelia, and Meteor are just some of the more popular ones available. The key here is to make sure the developer you're engaging has experience with the framework you've chosen for your project.

3. Can you write a function that can determine whether a string is a palindrome in under 100 characters?

A palindrome is a word, phrase, or sequence of letters that reads the same backwards or forwards. It also makes a great test for checking their ability to handle strings.

function isPalindrome(str) {
str = str.replace(/s/g, '').toLowerCase();
return (str == str.split('').reverse().join(''));
}

4. Tell us are you a team player? Give an example of a time when you had to resolve a conflict with another member on your team?

There are many jobs associated with putting together an application, and chances are high that your new JavaScript developer will at the very least have to interface with a designer. You're looking for a developer who can communicate effectively when they need to, responds to emails, and knows how to coordinate with other branches of a project.

5. Can you tell me what is starvation?

a problem encountered in concurrent computing where a process is perpetually denied necessary resources to process its work

6. Tell us what is polymorphism?

Variable of type Shape could refer to an object of type Square, Circle... Ability of a function to handle objects of many types

7. Tell us what is OSGI?

Specification describes a modular system and a service platform for the Java programming language that implements a complete and dynamic component model. Each bundle has its own classpath. Dependency hell avoidance. META-INF/MANIFEST.MF contains OSGI-info

8. Do you know what are the advantages of using JavaScript?

You want a developer who really knows how to play to the strengths of your chosen platform. Some key advantages of JavaScript are listed below for your convenience.

☛ Lightweight: JavaScript can be executed within the user's browser without having to communicate with the server, saving on bandwidth.
☛ Versatile: JavaScript supports multiple programming paradigms-object-oriented, imperative, and functional programming and can be used on both front-end and server-side technologies.
☛ Sleek Interactivity: Because tasks can be completed within the browser without communicating with the server, JavaScript can create a smooth “desktop-like” experience for the end user.
☛ Rich Interfaces: From drag-and-drop blocks to stylized sliders, there are numerous ways that JavaScript can be used to enhance a website's UI/UX.
☛ Prototypal Inheritance: Objects can inherit from other objects, which makes JavaScript so simple, powerful, and great for dynamic applications.

9. Tell us an example of a time that you used Prototypal OO in JavaScript?

Prototypal OO is the other major programming paradigm that really lets JavaScript shine-objects linked to other objects (OLOO). You're looking for knowledge of when and where to use prototypes, liberal use of “Object.assign()” or mixins, and a solid grasp of concepts like delegation and concatenative inheritance.

10. Tell us the differences between one-way data flow and two-way data binding?

This question may seem self-explanatory, but what you're looking for is a developer who can demonstrate solid understanding of how data flows throughout the application. In two-way data binding, changes to the UI and changes to the model occur asynchronously-a change on one end is reflected on the other. In one-way data binding, data only flows one way, and any changes that the user makes to the view will not be reflected in the model until the two are synced. Angular makes implementing two-way binding a snap, whereas React would be your framework of choice for deterministic one-way data flow.

Download Interview PDF

11. Tell me the output of the code below. Explain your answer?

var lorem = { ipsum : 1};
var output = (function(){
delete lorem.ipsum;
return lorem.ipsum;
})();

console.log(output);
The output would be undefined, because the delete operator removed the property “ipsum” from the object “lorem” before the object was returned. When you reference a deleted property, the result is undefined.

12. Explain me the output of the code below. Explain your answer?

console.log(0.1 + 0.2);
console.log(0.4 + 0.1 == 0.5);

This is a trick question in that at first glance, you might expect the console to print out “0.3” and “true.” The correct answer is that you can't know for sure, because of how JavaScript treats floating point values. In fact, in the above example, it will print out:

0.30000000000000004
false

13. Tell us the difference between classical inheritance and prototypal inheritance?

The great thing about JavaScript is the ability to do away with the rigid rules of classical inheritance and let objects inherit properties from other objects.

☛ Classical Inheritance: A constructor function instantiates an instance via the “new” keyword. This new instance inherits properties from a parent class.
☛ Prototypal Inheritance: An instance is created by cloning an existing object that serves as a prototype. This instance-often instantiated using a factory function or “Object.create()”-can benefit from selective inheritance from many different objects.

14. Tell me how would you empty the array below?

Var emptyArray = [‘this', ‘array', ‘is', ‘full'];
This deceptively simple question is designed to test your prospective coder's awareness of mitigating potential bugs when solving problems. The easiest method would be to set “emptyArray” equal to “[ ]”-which creates a new empty array. However, if the array is referenced anywhere else, the original array will remain unchanged. A more robust method would be “emptyArray.length – 0;”-which not only clears the array but updates all reference variables that point to this original array. Some possible solutions are listed below:

emptyArray.length = 0;
emptyArray.splice(0, emptyArray.length);
while(emptyArray.length){
emptyArray.pop();
}
emptyArray = []

15. Do you know what is a RESTful Web Service?

REST stands for Representational State Transfer, an architectural style that has largely been adopted as a best practice for building web and mobile applications. RESTful services are designed to be lightweight, easy to maintain, and scaleable. They are typically based on the HTTP protocol, make explicit use of HTTP methods (GET, POST, PUT, DELETE), are stateless, use intuitive URIs, and transfer XML/JSON data between the server and the client.

16. Tell me what is a thread-safe function?

Can be safely invoked by multiple threads at the same time

17. Basic Full-Stack Developer Job Interview Questions:

☛ What is your total experience?
☛ Have you ever worked with web applications? Describe the projects.
☛ Did you ever have problematic situations or conflicts when fulfilling the task? Describe them.
☛ What software, technologies and/or tools did you use in your previous projects?
☛ What are your expectations as to the opened position?
☛ How can you define such terms as inversion control, virtual function, and dynamic bidding?
☛ How can you define tail recursion?
☛ Describe the working process of the garbage collector. What's it like?
☛ What is A/B testing and when it is applicable?
☛ What design principles do you know?
☛ If separation of concerns is not used in development, what will be the drawbacks to your mind?
☛ What are the pros of microservices?
☛ What is 3-tier architecture?
☛ What is 3-layer architecture?
☛ Why use an application server? What is it for?
☛ How do you understand the aspect-oriented programming?

18. Tell me example of a time that you used functional programming in JavaScript?

Functional programming is one of the key paradigms that makes JavaScript stand out from other languages. Look for examples of functional purity, first-class functions, higher-order functions, or using functions as arguments and values. It's also a good sign if they have past experience working with functional languages like Lisp, Haskell, Erlang, or Clojure.

19. Explain me about your skill set?

A full stack developer is sure to have a lot to talk about here. There are many technologies and programming languages today, pick one from each category that you are strongest at.

Client side technologies: Javascript, CSS, jQuery, HTML, SAAS

Client Side framework: AngularJS, BackboneJS, ember.js, React, Metoe, Polymer

You need not worry your head with all the javascript frameworks available in the market. Just have a good command over one or two of them and you are good to face the interview. It takes less than two days to understand a new framework.

Server Side Technologies: Web API, Java API, Entity framework, ruby and rails, MVC, WCF, Python, node.js are some server side technologies. You need to be either a part of Java family or .Net family or completely the latest JavaScript and Node.js server side. The main role of a developer in the server side is to develop Web APIs that provide data to client application. Therefore, having a strong command in at least one of the technologies in order to develop the API is essential.

Database: MongoDB, SQL Server, Oracle, POstgreSQL etc.

20. Tell me what is 2-phase locking?

Growing phase, shrinking phase. Guarantees serializablity for transactions, doesn't prevent deadlock

21. Tell me what is monitor in Java?

Each object in Java is associated with a monitor, which a thread can lock or unlock

22. Tell us what is the difference between thread and process?

Threads (of the same process) run in a shared memory space, while processes run in separate memory spaces

23. Tell me how experienced are you with MEAN?

The MEAN (MongoDB, Express, AngularJS, and Node.js) stack is the most popular open-source JavaScript software stack available for building dynamic web apps-the primary advantage being that you can write both the server-side and client-side halves of the web project entirely in JavaScript. Even if you aren't intending to use MEAN for your project, you can still learn a lot about the developer when they recount their experiences using JavaScript for different aspects of web development.

24. Do you know what is race condition?

Behavior of software system where the output is dependent on the sequence or timing of other uncontrollable events

Download Interview PDF

25. Do you know java memory model?

A program is correctly synchronized if and only if all sequentially consistent executions are free of data races. Correctly synchronized programs have sequentially consistent semantics. Causality requirement for incorrectly synchronized programs.