Accreditation Bodies
Accreditation Bodies
Accreditation Bodies
Supercharge your career with our Multi-Cloud Engineer Bootcamp
KNOW MOREWeb development is an ever-evolving field that requires developers to be proficient in various programming languages, frameworks, and technologies. Whether you’re a beginner or preparing for a senior position, our interview questions are for freshers and experienced professionals. The questions contain various segments like AJAX, cookies, HTML, JavaScript, and other important topics. This web developer interview includes detailed, step-by-step explanations for every question, aiding in the comprehension of the concepts. If you're seeking to advance your career in web development, this guide is the ideal resource to prepare you thoroughly for your next interview with web development interview questions, giving you the confidence you need.
Cross-Origin Resource Sharing (CORS) is a browser mechanism that enables web pages from one domain to have controlled access to resources that are located outside the given domain (cross-domain request). It allows a client browser to interact with, and access resources from servers in other domains, also known as origins. It provides and extends flexibility to the Same-Origin Policy, which restricts a website's ability to access resources outside its source domain.
JavaScript can only make calls to URLs on the same origin as the location where the script is running, due to the “Same Origin Policy” followed. Without enabling CORS, there will be restrictions in accessing resources on different origins. If a website’s CORS policy is not set up properly, it poses a risk of cross-domain attacks, and cannot prevent cross-origin attacks such as Cross-Site Request Forgery (CSRF).
The Document Object Model (DOM) is a cross-platform programming interface, used to represent HTML and XML documents in nodes and objects. It defines the logical structure of documents and how they are accessed. It enables developers to create, modify, and delete the document structure, style, and content. The DOM represents the webpage in a hierarchical structure in order for programmers and users to navigate it more easily. These documents are treated as a tree structure in which every node is an object representing a specific part of the document. Each branch ends with a node, and every node contains objects. When a document is displayed in the browser, the HTML and CSS is converted into the DOM and combined with the document’s content.
AJAX stands for Asynchronous JavaScript and XML. It enables applications to transfer data to and from a server asynchronously without refreshing the web page. It allows updating some parts of the web page automatically, without reloading the entire page to fetch new resources on the same page. The existing display or behavior of the web page is not hampered while the data is updated. The purpose of AJAX is to create better, faster, and more interactive web applications using technologies such as XML, HTML/XHTML, CSS, DOM, JavaScript, XMLHttpRequest (XHR), etc.
Responsive Web Design means creating web pages that can easily be scaled across devices of different resolutions. The structure of the web page will be automatically adjusted across various platforms and devices to ensure an optimal viewing experience for all users. This is done without losing any information or screen tearing. Following the principle of flexibility, a responsive web page adapts to the size of the screen. Responsive websites use CSS media queries and flexible grids to change styles based on different factors related to the device, such as display type, width, and height.
This is a frequently asked question in web developer interview questions for freshers.
The essential HTTP request types in REST are as follows:
There are multiple ways to reduce the loading time of a web page. These are:
Some other techniques that can be used to reduce the load time of a website are implementing caching, removing redundant widgets, reducing lookups, using Asynchronous JavaScript, and creating Accelerated Mobile Pages (AMP), including code from Content Delivery Network (CDN), etc.
JavaScript code should be placed at the bottom of the HTML document. This is because the JavaScript code is generally huge and complex. If JavaScript code is included before the HTML body, the browser will wait for the JavaScript code to load before rendering the document. This will slow down the overall loading of the website. On the other hand, adding JavaScript at the bottom ensures that the browser is not blocked from rendering the HTML document due to the loading of JavaScript.
Cookies and Sessions, both, are used to store information. While cookies are only stored on the client i.e. browser, the sessions get stored on the client as well as the server. Cookies are text files that are stored on the client, for tracking purposes. When the client sends a request to the server in the future, it also sends the stored cookies to the server that can be used to identify the user. The session creates a file in a temporary directory on the server. The data will be available to all pages on the website during that visit. When the user closes the browser or leaves the site, the server will terminate that session.
Local storage uses windows.localStorage objects to store data with no expiration date. The data stored in the local storage will be present even when the user closes and reopens the browser.
Session storage uses the windows.sessionStorage object to store data for a single session. The data is deleted from the browser storage when the user closes the browser because the session is lost.
<div> and <span> both are HTML elements that are used to represent a section on the website. The differences between them are:
<div> tag | <span> tag |
<div> is a block-level element. It is used for creating block parts of the website. | <span> is an inline element. It is used for creating inline parts of the website. |
<div> tag is generally used for creating sections. | <span> tags are generally used to add styles to inline elements like text. For example, to highlight only a few words in a paragraph, you can wrap the words within <span> tags and apply styles to those elements only. |
<div> tag accepts the align attribute. | <span> tag does not accept the align attribute |
ID selector is a type of CSS selector that selects HTML elements using a specific ID attribute. The ID is defined to uniquely identify an element. Thus, there should not be more than one element within a page, having the same ID.
ID selectors are represented as #idName.
For example, the below HTML element will have the ID selector as #footer.
<div id=“footer”> This is the footer </div> |
Class selector is a type of CSS selector that selects HTML elements using specific class attributes. The class is defined to apply the same styles to different elements. Class selectors are a good choice if you want to apply common styles like font family, color, etc. to multiple elements.
Class selectors are represented as .idName.
For example, the below HTML element will have the class selector as ‘.post’
<div class=“post”> This is a post </div> |
It's no surprise that this one pops up often in entry level web developer interview questions.
Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) both are used to transfer data over the web. While SOAP is a protocol, REST is an architectural pattern. The major differences between SOAP and REST are:
SOAP | REST |
SOAP is a protocol designed with a specification. It includes a WSDL file containing the required information about the web service and its location. | REST is an architectural pattern in which web services have features like being stateless, cacheable, layered, etc. |
SOAP cannot make use of REST. | REST can make use of SOAP. |
SOAP uses service interfaces to expose its functionality to client applications. | REST uses Uniform Service Locators to provide access to the components on the hardware device. |
SOAP Messages contain a lot of information which is why SOAP requires more bandwidth for data transfer. | REST messages are comparatively smaller than SOAP, as they are mostly in the JSON format. Thus, REST does not require high bandwidth. |
SOAP only allows XML data format. | REST allows different data formats like JSON, XML, Plain text, HTML, etc., with JSON being the most preferred and widely used format. |
The CSS box model is an entity or a box under which HTML contents, or other elements, are enclosed. This box helps in creating layouts with CSS, adding borders, and defining space between elements. The CSS box model has four components that are:
CSS Media Queries are a way to define styles in CSS that are responsive according to the user’s window. Using media queries will enable you to style your HTML webpage responsively, i.e the way your website appears may vary according to the screen size, resolution, or media type. Media Queries are used to apply different styles or change the behavior or appearance of a website depending on certain queries. This will ensure a seamless viewing experience for all users, irrespective of whether they are using a desktop, mobile, or tablet.
Using media queries, we can check the device height and width, the viewport height and width, the orientation, i.e. landscape or portrait, and the resolution of the device.
One of the most frequently posed junior web developer interview questions, be ready for it.
JavaScript provides three types of pop-up boxes to display notifications and messages to users. They are:
1. Alert Box - This pop-up box is used to give information to the user. This box contains a message and an OK button, that the users can click to close the popup box.
2. Confirm Box - This type of pop-up box is used to obtain confirmation from the user. This box contains a message and two buttons - OK and Cancel, out of which the user has to select one. The user can click the OK button to confirm the decision and click the Cancel button to disagree with the decision. Clicking either of the buttons will close the popup. Based on which button is clicked by the user, the function to open the confirm box will return a boolean indicating whether the user has confirmed or not.
3. Prompt Box - The prompt box is used to display a text box in order to take user input, followed by OK and Cancel confirmation buttons. If the user enters a value and clicks OK, the function to create the prompt box will return the value that was entered. If the user clicks Cancel, null is returned.
The difference between POST, PUT and PATCH is:
There are three ways of adding CSS style rules to an HTML file.
1. Inline CSS - This is used to apply styles to a single HTML element, by making use of the style attribute.
Example,
<div style=“color: red;”> This div has inline CSS applied </div>
2. Internal or Embedded CSS - This is used to apply styles for a single HTML page. The style rules are defined in the <head> section of that HTML page, enclosed within the <style> </style> tags.
Example,
<!DOCTYPE html> <html> <head> <style> div { color: red; } p { color: blue; } </style> </head> <body> <div> This is a div with embedded CSS </div> <p>This is a paragraph with embedded CSS </p> </body> </html>
3. External CSS - This is the most efficient way to add CSS styles. Using an external stylesheet, you can add styles to many HTML pages at once. You use the <link> tag to link your HTML web pages to the external CSS file.
Example,
<link rel="stylesheet" href="styles.css">
NPM is a package manager for JavaScript. It is a command-line tool that installs, updates, publishes, and uninstalls JavaScript packages and modules required for applications. Using npm, you can install a number of libraries that are extremely useful for developers, speeding up the process of developing applications.
AJAX is used to update a part of a web page, without reloading the entire page. This is an essential feature when the user needs fast results without waiting for the HTTP response. AJAX can be used where small amounts of data need to be retrieved from the server without reloading the entire page. Few of the use cases of AJAX are data validation without submitting the form and dynamic dropdown population based on other input values. Using AJAX can save bandwidth and reduce the load on the server.
Client-Server Architecture is a computing model in which the server hosts, distributes, and controls the resources and services to be used by the client. The client sends a request to the server, asking for data, through the internet. The server accepts the request, processes it, and sends the response back to the client. The server is capable of managing multiple clients simultaneously. Moreover, a single client can connect to multiple servers simultaneously, each server providing a different set of services to the client.
In JavaScript, you can pass a function to another function as an argument. A callback is a function passed as an argument into another function for executing later. JavaScript callback functions can be used synchronously as well as asynchronously.
Below is a simple example of callback functions in JavaScript.
function postProcessing(result) { console.log(‘Processing is over! The result returned is: ’ + result); } function addNumbers(a, b, next) { let sum = a + b; next(sum); }
addNumbers(10, 5, postProcessing);
The output of the above code will be:
Processing is over! The result returned is: 15
The XMLHttpRequest (XHR) object is the key to AJAX. It is heavily used in AJAX programming to interact with servers. XMLHttpRequest can be used to retrieve any type of data, not just XML. It is supported by all modern browsers. It can be considered as an API that can be used by JavaScript, VBScript, and other web scripting languages to transfer and manipulate data to and from a server using HTTP.
Event Bubbling is defined as the type of event propagation in which one element is nested inside another element, and both elements have handlers for that event. When the event is triggered, it bubbles up to the elements in the hierarchy starting from the innermost element. In simpler words, the event is first captured and handled by the innermost element and then propagated to the outer elements. This causes all the events of a child element to be passed to the parent node.
It's no surprise that this one pops up often in web developer interview questions.
Most websites rely on HTTP calls to fetch the data from a server. It takes time for a function to fetch data from an API over HTTP.
In synchronous programming, the browser runs the script one line at a time, in order, and waits for the instruction to be completed before moving to the next line. The problem with synchronous programming is that the program becomes completely unresponsive while a function is running.
On the other hand, asynchronous programming was devised, which enables your script to start a potentially long-running task, but instead of waiting for the task to be finished, the browser can be responsive to other events while the task is running simultaneously. As soon as the task is finished, the script presents the result. This allows users to continue using the application while processes are running in the background, thus enhancing the user experience.
z-index is a CSS property that allows the creation of a custom stacking order of elements. The z-index property can be provided with an integer value representing the position of that element along the z-axis. This value can be either negative, positive, or zero.
On the other hand, the tabindex is an HTML attribute indicating whether the element can be focused by sequential keyboard navigation, usually done with the Tab key, and in what order. Similar to z-index, the tabindex attribute also takes an integer value, either negative, positive, or zero. A negative value indicates that the element cannot be sequentially navigated using the keyboard, but can be focused on using JavaScript or by clicking with the mouse. A positive value indicates that the element can be focused sequentially via the keyboard navigation, with its order defined by the numerical value provided. An element with the tabindex value 0 can be focused on using the keyboard after any element with a positive tabindex value.
There are multiple ways to dynamically add styles to HTML elements using JavaScript. The most direct way to add style using JavaScript is using the style property on elements that can be accessed in JavaScript using the DOM API. There are multiple document methods like getElementById(), getElementsByClassName(), getElementsByTagName() and querySelector() that allow fetching HTML Element objects whose CSS selectors match the specified string. Once you have the HTML element, you can access the style property and apply the desired style value.
For example,
const element = document.getElementById(‘header’); element.style.color = ‘black’; // change the color element.style.fontSize = ‘1rem’; // change the font size
The general syntax of applying style is element.style.cssProperty = value. Here, the CSS property names are written in camelCase.
A cleaner way to dynamically change the styles of an element using JavaScript is to add or remove the classes from the element.
Example,
const element = document.getElementById(‘header’); element.classList.add(‘className’); element.classList.remove(‘className’);
By adding or removing className to the list of classes of the element, the styles can be dynamically added or removed.
In HTML, the <form> tag can be used to create a form for taking user input. <form> tags have various attributes.
The action attribute is used to specify where to send the data entered in the form after the form is submitted by clicking the Submit button. Usually, the data is sent to the server.
The method attribute specifies the HTTP method that should be used when sending the data in the form to the location specified in the action attribute. The default HTTP method used to submit the form data is GET. The form data can be sent either by GET or POST. If GET is specified, the data will be sent as URL variables. If POST is specified, the data will be sent in the request body.
Pseudo-classes in CSS are used to define special states of HTML elements. They can be used along with the existing CSS selectors in order to add styles to elements based on their current state. The general syntax of using a pseudo-class with a regular selector is
selector:pseudo-class { // styles here }
The pseudo-classes are divided into different types such as:
The value of the margin CSS property can be negative. This makes it possible to move the element closer to its top or left neighbor, or move its right or bottom neighbor closer to the border. Depending on the value of the position property of the element, the behavior of the negative margin for that element will vary. However, a negative padding value is not considered valid.
The differences between HTTP and HTTPS are:
HTTP | HTTPS |
HTTP stands for HyperText Transfer Protocol. | HTTPS stands for HyperText Transfer Protocol Secure. It is also known as HTTP over TLS or HTTP over SSL. |
HTTP URLs begin with http:// | HTTPS URLs begin with https:// Websites running over HTTPS have a redirect in place so that if you type http://, the browser will redirect to deliver over a secured connection. |
HTTP uses Transmission Control Protocol (TCP) to transfer data packets over port 80. | HTTPS uses TCP for data transfer as well, but over port 443 and the connection is encrypted by Transport Layer Security (TLS). |
HTTP is less secure. It is vulnerable to hackers. | HTTPS is secure. It is secure against attacks. |
HTTP does not scramble the data before transmission. | HTTPS scrambles the data before transmission and de-scrambles the data on receiving. |
HTTP is faster. | HTTPS is slower. |
A website using HTTP does not require an SSL certificate. | A website using HTTPS requires an SSL certificate. |
Both window.onload and onDocumentReady are used to perform operations when the web page has been loaded. However, there are differences in these in terms of execution.
window.onload is triggered when the DOM and all external resources like images and videos are loaded. Due to the loading of external resources, there is a delay in the execution of the actual script when the page is displayed. window.onload is not cross-browser compatible while using jQuery.
On the other hand, the onDocumentReady method is triggered when the DOM has loaded, i.e it waits for the HTML elements to be loaded but not for multimedia content like images and videos. The DOM tree has been built when the onDocumentReady event is triggered. Thus, any delays in the execution of the script are reduced. Moreover, it is compatible with all browsers.
<canvas> and <svg> are two new graphical containers, used to create and store graphic elements in the HTML document. They have a few differences between them that are:
<canvas> | <svg> |
<canvas> is a container for drawing graphics using JavaScript. | <svg> is a container for graphics like ellipses, circles, rectangles, polygons, etc. |
<canvas> is not scalable and is unsuitable for printing at high resolution. | <svg> is scalable and can be printed in high resolution. |
Modifying a <canvas> can only be done by scripting. | <svg> can be modified using the script as well as CSS. |
<canvas> is a raster-based format that is made of pixels. | <svg> is vector-based graphic. These can be stretched or compressed without losing quality. |
<canvas> performs better when there is a small surface area or a large number of objects. | <svg> performs better when dealing with fewer objects or larger surface areas. |
ECMAScript is the language standard for JavaScript, the commercial name/trademark of the language. Under ECMA, JavaScript is evolved and nurtured by the TC-39 committee.
JavaScript is a scripting language that conforms to, or in other words, implements the ECMAScript specification.
Long polling is a technique for maintaining a persistent connection between the client and the server. It is used to push data from the server to the client. The connection is maintained after a request for new information has been made by the client to the server, until the data becomes available on the server and it is ready to send it to the client. The connection is closed when the server has sent the data to the client or a connection timeout occurs. The flow of long polling is:
Single Page Applications (SPAs) are those web applications that load only a single web document and then update that document when different content or layout is to be displayed. Single Page Applications do not require page reloading during use. This prevents the loading of whole new pages from the server, resulting in better performance with some disadvantages including SEO, state maintenance, etc. SPA is faster as compared to traditional multi-page applications as most resources like HTML, CSS, and scripts are loaded only once during the application lifecycle, and only the data is transferred multiple times from the server.
A staple in web dev interview questions, be prepared to answer this one.
Progressive rendering is a technique that is used to render content for display as quickly as possible. Here, small parts of a website are updated sequentially on the server and streamed to the client in parts instead of waiting for the whole page to be rendered. Once the critical content is rendered on the server, it is streamed to the client without waiting for non-critical content, which is streamed later. The browser progressively renders the HTML on the web page as soon as it receives a chunk of the critical content. As and when the non-critical chunks are received from the server, they are rendered on the web page.
Cross-site scripting (XSS) is a client-side code injection attack. It enables an attacker to introduce malicious code into a web page which is executed in the browser of the victim. When the victim visits the web page, the script reaches the user’s browser and is executed. XSS attacks are common in JavaScript.
Webpack is a static module bundler tool that is designed to bundle JavaScript files, to be used in a browser. Modules are reusable code chunks built from JavaScript, external libraries in node_modules, CSS styles, images, and other assets. They are packaged and can be easily added to a website. Webpack generates a single or a few files that can run your application from a large number of original files.
Webpack puts all files, assets, code, images, fonts, etc. in a dependency graph. Based on this graph, a new package is created that contains only the bare minimum files required that can be easily embedded into the HTML file and used in the application.
Progressive Web Applications (PWAs), as the name suggests, are web applications but they deliver an app-like user experience. They have capabilities like push notifications and can even work offline. PWAs provide the best of both worlds - the web and native applications. They are cheaper to develop as compared to native apps because you need not have separate code bases for developing applications for different platforms. You can have a single codebase for building one web application that can run on almost all platforms. Once you have developed your website, it requires a few configuration-based changes to be converted to a PWA. Thus, many companies have now started to resort to PWAs.
A common question in web developer job interview questions, don't miss this one.
The different APIs provided in HTML5 are:
The ‘use script’ expression is used to enable strict mode in JavaScript, which makes it easier to write good JavaScript code. We can then run a restricted variant of JavaScript. The strict mode was introduced in ECMAScript version 5. Using strict mode eliminates some silent errors in JavaScript by changing them to throw errors. JavaScript code in strict mode can sometimes run faster than the same code without the strict mode. Strict mode also ensures the security of JavaScript code and improves compiler efficiency.
A promise in JavaScript represents the eventual completion or failure of an asynchronous operation and its resulting value. It is a proxy for a value that might not necessarily be known when the promise object is created. Promises are used in Asynchronous methods, where instead of immediately returning a value, the method returns a promise to provide a value at some point in the future. To put it simply, promises are a way to return synchronous values from an asynchronous method. The value for which the promise acts as a proxy, can either be a resolved value, or a reason that it was rejected.
A promise can be in either of the three states:
A promise is considered to be settled if it is either in the fulfilled state or in the rejected state.
Async/Await is a special syntax that allows developers to work with JavaScript promises in an easier and more comfortable manner.
Async is a keyword that is written before a function definition, which indicates that the function always returns a promise.
Await is a keyword that is used inside a function marked async. You cannot use await in a not async function. The await keyword makes JavaScript wait until a promise is settled and the result is returned.
Example,
async function fetchData() { let promise = new Promise((resolve, reject) => { setTimeout(() => { resolve(‘Promise is successful’);}, 2000); }); let result = await promise; console.log(result); }
Running the above function will log ‘Promise is successful’ after 2 seconds in the console.
The function call fetchData() will return a promise which is later resolved to the value ‘Promise is successful’.
On the line
let result = await promise;
JavaScript waits for the promise variable to be resolved before the value is returned to the result variable.
Cross-Origin Resource Sharing (CORS) is a browser mechanism that enables web pages from one domain to have controlled access to resources that are located outside the given domain (cross-domain request). It allows a client browser to interact with, and access resources from servers in other domains, also known as origins. It provides and extends flexibility to the Same-Origin Policy, which restricts a website's ability to access resources outside its source domain.
JavaScript can only make calls to URLs on the same origin as the location where the script is running, due to the “Same Origin Policy” followed. Without enabling CORS, there will be restrictions in accessing resources on different origins. If a website’s CORS policy is not set up properly, it poses a risk of cross-domain attacks, and cannot prevent cross-origin attacks such as Cross-Site Request Forgery (CSRF).
The Document Object Model (DOM) is a cross-platform programming interface, used to represent HTML and XML documents in nodes and objects. It defines the logical structure of documents and how they are accessed. It enables developers to create, modify, and delete the document structure, style, and content. The DOM represents the webpage in a hierarchical structure in order for programmers and users to navigate it more easily. These documents are treated as a tree structure in which every node is an object representing a specific part of the document. Each branch ends with a node, and every node contains objects. When a document is displayed in the browser, the HTML and CSS is converted into the DOM and combined with the document’s content.
AJAX stands for Asynchronous JavaScript and XML. It enables applications to transfer data to and from a server asynchronously without refreshing the web page. It allows updating some parts of the web page automatically, without reloading the entire page to fetch new resources on the same page. The existing display or behavior of the web page is not hampered while the data is updated. The purpose of AJAX is to create better, faster, and more interactive web applications using technologies such as XML, HTML/XHTML, CSS, DOM, JavaScript, XMLHttpRequest (XHR), etc.
Responsive Web Design means creating web pages that can easily be scaled across devices of different resolutions. The structure of the web page will be automatically adjusted across various platforms and devices to ensure an optimal viewing experience for all users. This is done without losing any information or screen tearing. Following the principle of flexibility, a responsive web page adapts to the size of the screen. Responsive websites use CSS media queries and flexible grids to change styles based on different factors related to the device, such as display type, width, and height.
This is a frequently asked question in web developer interview questions for freshers.
The essential HTTP request types in REST are as follows:
There are multiple ways to reduce the loading time of a web page. These are:
Some other techniques that can be used to reduce the load time of a website are implementing caching, removing redundant widgets, reducing lookups, using Asynchronous JavaScript, and creating Accelerated Mobile Pages (AMP), including code from Content Delivery Network (CDN), etc.
JavaScript code should be placed at the bottom of the HTML document. This is because the JavaScript code is generally huge and complex. If JavaScript code is included before the HTML body, the browser will wait for the JavaScript code to load before rendering the document. This will slow down the overall loading of the website. On the other hand, adding JavaScript at the bottom ensures that the browser is not blocked from rendering the HTML document due to the loading of JavaScript.
Cookies and Sessions, both, are used to store information. While cookies are only stored on the client i.e. browser, the sessions get stored on the client as well as the server. Cookies are text files that are stored on the client, for tracking purposes. When the client sends a request to the server in the future, it also sends the stored cookies to the server that can be used to identify the user. The session creates a file in a temporary directory on the server. The data will be available to all pages on the website during that visit. When the user closes the browser or leaves the site, the server will terminate that session.
Local storage uses windows.localStorage objects to store data with no expiration date. The data stored in the local storage will be present even when the user closes and reopens the browser.
Session storage uses the windows.sessionStorage object to store data for a single session. The data is deleted from the browser storage when the user closes the browser because the session is lost.
<div> and <span> both are HTML elements that are used to represent a section on the website. The differences between them are:
<div> tag | <span> tag |
<div> is a block-level element. It is used for creating block parts of the website. | <span> is an inline element. It is used for creating inline parts of the website. |
<div> tag is generally used for creating sections. | <span> tags are generally used to add styles to inline elements like text. For example, to highlight only a few words in a paragraph, you can wrap the words within <span> tags and apply styles to those elements only. |
<div> tag accepts the align attribute. | <span> tag does not accept the align attribute |
ID selector is a type of CSS selector that selects HTML elements using a specific ID attribute. The ID is defined to uniquely identify an element. Thus, there should not be more than one element within a page, having the same ID.
ID selectors are represented as #idName.
For example, the below HTML element will have the ID selector as #footer.
<div id=“footer”> This is the footer </div> |
Class selector is a type of CSS selector that selects HTML elements using specific class attributes. The class is defined to apply the same styles to different elements. Class selectors are a good choice if you want to apply common styles like font family, color, etc. to multiple elements.
Class selectors are represented as .idName.
For example, the below HTML element will have the class selector as ‘.post’
<div class=“post”> This is a post </div> |
It's no surprise that this one pops up often in entry level web developer interview questions.
Simple Object Access Protocol (SOAP) and Representational State Transfer (REST) both are used to transfer data over the web. While SOAP is a protocol, REST is an architectural pattern. The major differences between SOAP and REST are:
SOAP | REST |
SOAP is a protocol designed with a specification. It includes a WSDL file containing the required information about the web service and its location. | REST is an architectural pattern in which web services have features like being stateless, cacheable, layered, etc. |
SOAP cannot make use of REST. | REST can make use of SOAP. |
SOAP uses service interfaces to expose its functionality to client applications. | REST uses Uniform Service Locators to provide access to the components on the hardware device. |
SOAP Messages contain a lot of information which is why SOAP requires more bandwidth for data transfer. | REST messages are comparatively smaller than SOAP, as they are mostly in the JSON format. Thus, REST does not require high bandwidth. |
SOAP only allows XML data format. | REST allows different data formats like JSON, XML, Plain text, HTML, etc., with JSON being the most preferred and widely used format. |
The CSS box model is an entity or a box under which HTML contents, or other elements, are enclosed. This box helps in creating layouts with CSS, adding borders, and defining space between elements. The CSS box model has four components that are:
CSS Media Queries are a way to define styles in CSS that are responsive according to the user’s window. Using media queries will enable you to style your HTML webpage responsively, i.e the way your website appears may vary according to the screen size, resolution, or media type. Media Queries are used to apply different styles or change the behavior or appearance of a website depending on certain queries. This will ensure a seamless viewing experience for all users, irrespective of whether they are using a desktop, mobile, or tablet.
Using media queries, we can check the device height and width, the viewport height and width, the orientation, i.e. landscape or portrait, and the resolution of the device.
One of the most frequently posed junior web developer interview questions, be ready for it.
JavaScript provides three types of pop-up boxes to display notifications and messages to users. They are:
1. Alert Box - This pop-up box is used to give information to the user. This box contains a message and an OK button, that the users can click to close the popup box.
2. Confirm Box - This type of pop-up box is used to obtain confirmation from the user. This box contains a message and two buttons - OK and Cancel, out of which the user has to select one. The user can click the OK button to confirm the decision and click the Cancel button to disagree with the decision. Clicking either of the buttons will close the popup. Based on which button is clicked by the user, the function to open the confirm box will return a boolean indicating whether the user has confirmed or not.
3. Prompt Box - The prompt box is used to display a text box in order to take user input, followed by OK and Cancel confirmation buttons. If the user enters a value and clicks OK, the function to create the prompt box will return the value that was entered. If the user clicks Cancel, null is returned.
The difference between POST, PUT and PATCH is:
There are three ways of adding CSS style rules to an HTML file.
1. Inline CSS - This is used to apply styles to a single HTML element, by making use of the style attribute.
Example,
<div style=“color: red;”> This div has inline CSS applied </div>
2. Internal or Embedded CSS - This is used to apply styles for a single HTML page. The style rules are defined in the <head> section of that HTML page, enclosed within the <style> </style> tags.
Example,
<!DOCTYPE html> <html> <head> <style> div { color: red; } p { color: blue; } </style> </head> <body> <div> This is a div with embedded CSS </div> <p>This is a paragraph with embedded CSS </p> </body> </html>
3. External CSS - This is the most efficient way to add CSS styles. Using an external stylesheet, you can add styles to many HTML pages at once. You use the <link> tag to link your HTML web pages to the external CSS file.
Example,
<link rel="stylesheet" href="styles.css">
NPM is a package manager for JavaScript. It is a command-line tool that installs, updates, publishes, and uninstalls JavaScript packages and modules required for applications. Using npm, you can install a number of libraries that are extremely useful for developers, speeding up the process of developing applications.
AJAX is used to update a part of a web page, without reloading the entire page. This is an essential feature when the user needs fast results without waiting for the HTTP response. AJAX can be used where small amounts of data need to be retrieved from the server without reloading the entire page. Few of the use cases of AJAX are data validation without submitting the form and dynamic dropdown population based on other input values. Using AJAX can save bandwidth and reduce the load on the server.
Client-Server Architecture is a computing model in which the server hosts, distributes, and controls the resources and services to be used by the client. The client sends a request to the server, asking for data, through the internet. The server accepts the request, processes it, and sends the response back to the client. The server is capable of managing multiple clients simultaneously. Moreover, a single client can connect to multiple servers simultaneously, each server providing a different set of services to the client.
In JavaScript, you can pass a function to another function as an argument. A callback is a function passed as an argument into another function for executing later. JavaScript callback functions can be used synchronously as well as asynchronously.
Below is a simple example of callback functions in JavaScript.
function postProcessing(result) { console.log(‘Processing is over! The result returned is: ’ + result); } function addNumbers(a, b, next) { let sum = a + b; next(sum); }
addNumbers(10, 5, postProcessing);
The output of the above code will be:
Processing is over! The result returned is: 15
The XMLHttpRequest (XHR) object is the key to AJAX. It is heavily used in AJAX programming to interact with servers. XMLHttpRequest can be used to retrieve any type of data, not just XML. It is supported by all modern browsers. It can be considered as an API that can be used by JavaScript, VBScript, and other web scripting languages to transfer and manipulate data to and from a server using HTTP.
Event Bubbling is defined as the type of event propagation in which one element is nested inside another element, and both elements have handlers for that event. When the event is triggered, it bubbles up to the elements in the hierarchy starting from the innermost element. In simpler words, the event is first captured and handled by the innermost element and then propagated to the outer elements. This causes all the events of a child element to be passed to the parent node.
It's no surprise that this one pops up often in web developer interview questions.
Most websites rely on HTTP calls to fetch the data from a server. It takes time for a function to fetch data from an API over HTTP.
In synchronous programming, the browser runs the script one line at a time, in order, and waits for the instruction to be completed before moving to the next line. The problem with synchronous programming is that the program becomes completely unresponsive while a function is running.
On the other hand, asynchronous programming was devised, which enables your script to start a potentially long-running task, but instead of waiting for the task to be finished, the browser can be responsive to other events while the task is running simultaneously. As soon as the task is finished, the script presents the result. This allows users to continue using the application while processes are running in the background, thus enhancing the user experience.
z-index is a CSS property that allows the creation of a custom stacking order of elements. The z-index property can be provided with an integer value representing the position of that element along the z-axis. This value can be either negative, positive, or zero.
On the other hand, the tabindex is an HTML attribute indicating whether the element can be focused by sequential keyboard navigation, usually done with the Tab key, and in what order. Similar to z-index, the tabindex attribute also takes an integer value, either negative, positive, or zero. A negative value indicates that the element cannot be sequentially navigated using the keyboard, but can be focused on using JavaScript or by clicking with the mouse. A positive value indicates that the element can be focused sequentially via the keyboard navigation, with its order defined by the numerical value provided. An element with the tabindex value 0 can be focused on using the keyboard after any element with a positive tabindex value.
There are multiple ways to dynamically add styles to HTML elements using JavaScript. The most direct way to add style using JavaScript is using the style property on elements that can be accessed in JavaScript using the DOM API. There are multiple document methods like getElementById(), getElementsByClassName(), getElementsByTagName() and querySelector() that allow fetching HTML Element objects whose CSS selectors match the specified string. Once you have the HTML element, you can access the style property and apply the desired style value.
For example,
const element = document.getElementById(‘header’); element.style.color = ‘black’; // change the color element.style.fontSize = ‘1rem’; // change the font size
The general syntax of applying style is element.style.cssProperty = value. Here, the CSS property names are written in camelCase.
A cleaner way to dynamically change the styles of an element using JavaScript is to add or remove the classes from the element.
Example,
const element = document.getElementById(‘header’); element.classList.add(‘className’); element.classList.remove(‘className’);
By adding or removing className to the list of classes of the element, the styles can be dynamically added or removed.
In HTML, the <form> tag can be used to create a form for taking user input. <form> tags have various attributes.
The action attribute is used to specify where to send the data entered in the form after the form is submitted by clicking the Submit button. Usually, the data is sent to the server.
The method attribute specifies the HTTP method that should be used when sending the data in the form to the location specified in the action attribute. The default HTTP method used to submit the form data is GET. The form data can be sent either by GET or POST. If GET is specified, the data will be sent as URL variables. If POST is specified, the data will be sent in the request body.
Pseudo-classes in CSS are used to define special states of HTML elements. They can be used along with the existing CSS selectors in order to add styles to elements based on their current state. The general syntax of using a pseudo-class with a regular selector is
selector:pseudo-class { // styles here }
The pseudo-classes are divided into different types such as:
The value of the margin CSS property can be negative. This makes it possible to move the element closer to its top or left neighbor, or move its right or bottom neighbor closer to the border. Depending on the value of the position property of the element, the behavior of the negative margin for that element will vary. However, a negative padding value is not considered valid.
The differences between HTTP and HTTPS are:
HTTP | HTTPS |
HTTP stands for HyperText Transfer Protocol. | HTTPS stands for HyperText Transfer Protocol Secure. It is also known as HTTP over TLS or HTTP over SSL. |
HTTP URLs begin with http:// | HTTPS URLs begin with https:// Websites running over HTTPS have a redirect in place so that if you type http://, the browser will redirect to deliver over a secured connection. |
HTTP uses Transmission Control Protocol (TCP) to transfer data packets over port 80. | HTTPS uses TCP for data transfer as well, but over port 443 and the connection is encrypted by Transport Layer Security (TLS). |
HTTP is less secure. It is vulnerable to hackers. | HTTPS is secure. It is secure against attacks. |
HTTP does not scramble the data before transmission. | HTTPS scrambles the data before transmission and de-scrambles the data on receiving. |
HTTP is faster. | HTTPS is slower. |
A website using HTTP does not require an SSL certificate. | A website using HTTPS requires an SSL certificate. |
Both window.onload and onDocumentReady are used to perform operations when the web page has been loaded. However, there are differences in these in terms of execution.
window.onload is triggered when the DOM and all external resources like images and videos are loaded. Due to the loading of external resources, there is a delay in the execution of the actual script when the page is displayed. window.onload is not cross-browser compatible while using jQuery.
On the other hand, the onDocumentReady method is triggered when the DOM has loaded, i.e it waits for the HTML elements to be loaded but not for multimedia content like images and videos. The DOM tree has been built when the onDocumentReady event is triggered. Thus, any delays in the execution of the script are reduced. Moreover, it is compatible with all browsers.
<canvas> and <svg> are two new graphical containers, used to create and store graphic elements in the HTML document. They have a few differences between them that are:
<canvas> | <svg> |
<canvas> is a container for drawing graphics using JavaScript. | <svg> is a container for graphics like ellipses, circles, rectangles, polygons, etc. |
<canvas> is not scalable and is unsuitable for printing at high resolution. | <svg> is scalable and can be printed in high resolution. |
Modifying a <canvas> can only be done by scripting. | <svg> can be modified using the script as well as CSS. |
<canvas> is a raster-based format that is made of pixels. | <svg> is vector-based graphic. These can be stretched or compressed without losing quality. |
<canvas> performs better when there is a small surface area or a large number of objects. | <svg> performs better when dealing with fewer objects or larger surface areas. |
ECMAScript is the language standard for JavaScript, the commercial name/trademark of the language. Under ECMA, JavaScript is evolved and nurtured by the TC-39 committee.
JavaScript is a scripting language that conforms to, or in other words, implements the ECMAScript specification.
Long polling is a technique for maintaining a persistent connection between the client and the server. It is used to push data from the server to the client. The connection is maintained after a request for new information has been made by the client to the server, until the data becomes available on the server and it is ready to send it to the client. The connection is closed when the server has sent the data to the client or a connection timeout occurs. The flow of long polling is:
Single Page Applications (SPAs) are those web applications that load only a single web document and then update that document when different content or layout is to be displayed. Single Page Applications do not require page reloading during use. This prevents the loading of whole new pages from the server, resulting in better performance with some disadvantages including SEO, state maintenance, etc. SPA is faster as compared to traditional multi-page applications as most resources like HTML, CSS, and scripts are loaded only once during the application lifecycle, and only the data is transferred multiple times from the server.
A staple in web dev interview questions, be prepared to answer this one.
Progressive rendering is a technique that is used to render content for display as quickly as possible. Here, small parts of a website are updated sequentially on the server and streamed to the client in parts instead of waiting for the whole page to be rendered. Once the critical content is rendered on the server, it is streamed to the client without waiting for non-critical content, which is streamed later. The browser progressively renders the HTML on the web page as soon as it receives a chunk of the critical content. As and when the non-critical chunks are received from the server, they are rendered on the web page.
Cross-site scripting (XSS) is a client-side code injection attack. It enables an attacker to introduce malicious code into a web page which is executed in the browser of the victim. When the victim visits the web page, the script reaches the user’s browser and is executed. XSS attacks are common in JavaScript.
Webpack is a static module bundler tool that is designed to bundle JavaScript files, to be used in a browser. Modules are reusable code chunks built from JavaScript, external libraries in node_modules, CSS styles, images, and other assets. They are packaged and can be easily added to a website. Webpack generates a single or a few files that can run your application from a large number of original files.
Webpack puts all files, assets, code, images, fonts, etc. in a dependency graph. Based on this graph, a new package is created that contains only the bare minimum files required that can be easily embedded into the HTML file and used in the application.
Progressive Web Applications (PWAs), as the name suggests, are web applications but they deliver an app-like user experience. They have capabilities like push notifications and can even work offline. PWAs provide the best of both worlds - the web and native applications. They are cheaper to develop as compared to native apps because you need not have separate code bases for developing applications for different platforms. You can have a single codebase for building one web application that can run on almost all platforms. Once you have developed your website, it requires a few configuration-based changes to be converted to a PWA. Thus, many companies have now started to resort to PWAs.
A common question in web developer job interview questions, don't miss this one.
The different APIs provided in HTML5 are:
The ‘use script’ expression is used to enable strict mode in JavaScript, which makes it easier to write good JavaScript code. We can then run a restricted variant of JavaScript. The strict mode was introduced in ECMAScript version 5. Using strict mode eliminates some silent errors in JavaScript by changing them to throw errors. JavaScript code in strict mode can sometimes run faster than the same code without the strict mode. Strict mode also ensures the security of JavaScript code and improves compiler efficiency.
A promise in JavaScript represents the eventual completion or failure of an asynchronous operation and its resulting value. It is a proxy for a value that might not necessarily be known when the promise object is created. Promises are used in Asynchronous methods, where instead of immediately returning a value, the method returns a promise to provide a value at some point in the future. To put it simply, promises are a way to return synchronous values from an asynchronous method. The value for which the promise acts as a proxy, can either be a resolved value, or a reason that it was rejected.
A promise can be in either of the three states:
A promise is considered to be settled if it is either in the fulfilled state or in the rejected state.
Async/Await is a special syntax that allows developers to work with JavaScript promises in an easier and more comfortable manner.
Async is a keyword that is written before a function definition, which indicates that the function always returns a promise.
Await is a keyword that is used inside a function marked async. You cannot use await in a not async function. The await keyword makes JavaScript wait until a promise is settled and the result is returned.
Example,
async function fetchData() { let promise = new Promise((resolve, reject) => { setTimeout(() => { resolve(‘Promise is successful’);}, 2000); }); let result = await promise; console.log(result); }
Running the above function will log ‘Promise is successful’ after 2 seconds in the console.
The function call fetchData() will return a promise which is later resolved to the value ‘Promise is successful’.
On the line
let result = await promise;
JavaScript waits for the promise variable to be resolved before the value is returned to the result variable.
A Web Developer is a specialized developer whose primary responsibility is to create websites and web applications for organizations. They take web design created by either a client or a design team and convert it into a fully functioning website. Web Developers typically use technologies like HTML, CSS, and JavaScript at the very least but might also make use of advanced technologies and frameworks like Node.js, Angular, React, Java, Python, Ruby on Rails, etc. Our Web Developer course will help you get in-depth knowledge of all these technologies, answer web developer coding questions and become a professional Web Developer.
Web development has quickly become one of the most attractive and high-paying career choices in the modern world. In 2023, the median salary of Web Developers is $75,878, with the top 25% earning more than $1,00,000.
If you are preparing for a Web Developer interview, this is the right place. We have curated a list of the most popular entry-level web developer interview questions, senior-level web dev interview questions, and web developer coding questions. Prepare well with these web developer questions to familiarize yourself with the questions typically asked in such interviews. To understand the fundamentals enroll in our course for developers and grow your career exponentially.
Good luck!
Submitted questions and answers are subjecct to review and editing,and may or may not be selected for posting, at the sole discretion of Knowledgehut.
Get a 1:1 Mentorship call with our Career Advisor
By tapping submit, you agree to KnowledgeHut Privacy Policy and Terms & Conditions