‐: ( Publicis Sapient ) :‐ - sakib03/Interview GitHub Wiki

HTML

Can you name some HTML5 features/APIs?

Do you understand what semantic markup is and how do you follow it in your code?

What are data- attributes good for?

What do you understand by Web Workers / What purpose do they serve?

What is a manifest file in context of PWA(Progressive Web App)?

How do you disable/enable pinch-zoom for your web app?

HTML | Templating

Request lifecycle, Atomic design, Design Systems

Sementic HTML, DOM

Forms and Validations

Media - Responsive Images, Audio and Video

Browser Side Storage, Workers, and Caching- Local, Session, Cookies, IndexDb, WebSQL

Service Workers, Web Workers

SEO basics


CSS

Any exposure to CSS preprocessors?

Any CSS framework?

Do you understand CSS specificity?

Describe BFC (Block Formatting Context) and how it works.

Describe pseudo-elements and discuss what they are used for.

RESPONSIVE DEVELOPMENT

Any experience in Responsive? How do you achieve responsive behavior? What breakpoints and viewports do you support for responsive? How do you handle landscape vs portrait Views using media queries?

What is your approach for a Responsive implementation

What is Responsive Grid System?

How do you handle responsive foreground Images / assets?

ACCESSIBILITY

What is Accessibility? What are the different standards to achieve accessibility?

What are ARIA-tags ?

What build tools have you incorporated to test for code level accessibility compliance ?

What are the accessibility testing/screen reading tools you have used?

How do you make Input field accessible?

CSS / processors & Responsive

CSSOM, Rules, Selectors and Property values, Cascading, Inheritance, Specificity

Responsive Design (Mobile and Desktop first), Media Queries

Layout - [float, flex, grid], display, postitioning

Animations and transalations- Basics, SVG

Processors / Preprocessors, Frameworks, CSS-in-JS


JavaScript

Which JS design patterns have you used/familiar with?

What is “closure” in javascript? Can you provide an example?

ES6: What do you understand by the temporal dead zone?

Do you know what does “Context” mean in JavaScript? How do you change the Context of a given function?

What is your experience with JS frameworks/ Libraries, which ones are you comfortable with?

Have you used any front- end build/automation tools/frameworks?

Have you used or familiar with automated testing in JS? Have you written unit/end to end test cases in JS? (Test driven Development)

What do you understand by Tree Shaking?

What is a call back function? What are promises – what problem does it solve?

OOJS / Functional JS

Variables, Scope, Data Types, operators, loops, if statements, error handling and functions. Execution Context (this). [Call, Apply, Bind]

Differentiating factors in ES5 and ES6

Events and Event Handling, DOM manipulation

Object Prototype, Prototypal Inheritance, Closure

Async Programming - Event Loop and how it works, Macro and Micro tasks,

Callbacks and setTimeOut, Promises, chaining promises, [Promise.all, Promise.race ], error handling, async / await

Testing: POV on different type of tests, Different libraries (TL, Jest, Enzyme, Karma, Jasmine)

Patterns, Module Systems & Principles

Singleton, Factory functions, Module, Prototype, PubSub, Observable

Common JS, UMD, AMD

12-factor app, SOLID, DRY principles

FUNCTIONAL PROGRAMMING: Pure Functions / Side Effects / Purifying closures, Point-free style, Composition / Compound functions, Immutability, Map / Reduce / Filter, Higher-order functions, Currying / Composing

PWA - App Manifest, Caching & Service Workers, Background Sync, Push Notifications, Workbox

Tooling:

Webpack / Parcel / Rollup - config from-ground setup, Code Splitting, Tree Shaking, Fedration, Loaders and plugins

Transpilation using tools like Babel

Understands GIT hooks and can use them.

Code bundling/minification/production ready assets using Webpack

ESLint, Husky and other static code analysis tools


React

What are React Hooks?

What is useState() in React?

What is prop drilling? How can you avoid it?

What do you understand by side effects?

How do you pass the data to React component from Redux store?

What are middlewares and why are they used in React Redux?

PROGRAMMING

SOLID principles. Explain any 2

Can you please explain the DRY principle?

Explain Null vs Undefined in Javascript

How do you secure your Javascript code? What is CSRF (Cross-Site Request Forgery)? What do you understand with XSS (Cross Site Scripting)?

CACHING

What are the different layers of caching that you have implemented / have experience of?

How are Cookies and local storage different?

PERFORMANCE

How will you measure performance of any site?

What do you understand by performance metrices like TTFB, TTI, FCP and FMP?

What is the diff between FCP and FMP?

What build tools have you incorporated to test for quality of CSS and JS during development.

Mention some approaches for reducing HTTP requests on page?

Do you think JS files added inside the body tag can impact page rendering? If yes – then how can we make them unblocking?

How can one find out the Execution scope and order of functions with their time taken using some tool?


TypeScript

Web Basics, HTML / CSS / OOJS

Semantic Markup, RWD, Responsive Images, Atomic Design, Design System, OOJS Concepts, Closures, DOM manipulation

TypeScript

Using types, classes, interfaces, generics.


Angular

Components

Creating custom components, Splitting an application into components

View encapsulation

ViewChild

Component lifecycle & lifecycle hooks

Data Binding

Types of data binding - String interpolation, Property, Event & 2-way binding

Component communication using data binding

Directives

Using in-built Attribute & Structural directives

Creating custom directives

Renderer, HostListener & HostBinding

Pipes

Using in-built pipes, parametrization & chaining

Creating custom pipes

The async pipe

Services

Need for Services, Service instances

Component communication using services

Modules

Angular modules, Feature & Shared modules

Eagerly & Lazy loaded modules

Routing & Guards

Routing configuration & navigation

Route params, Query params and Fragments

Redirection & Wildcard routes

Guards - canActivate, canDeactivate & Resolve

Observables

Creating & Subscribing to Observables

Chaining, Cancellation & Error handling

Subjects and different types of subjects

RxJS Operators

Forms

Template-driven & Reactive forms

Form validation, Built-in & Custom validators

HTTP

GET and POST requests

Response transformation, Error handling

Interceptors for request and response

Unit testing

Test setup, code coverage

Testing components & services

Tooling

Linting, code formatting, unit testing, git hooks, CI/CD integration

State Management

State management using NgRx or any other library

Server-side rendering

SSR using Angular Universal


NFRs

Performance

Compression, Caching / CDN / Expirations, HTTP Headers, JS Profiling (CPU/MEM), HTTP2, Universal View State, Perf Analysis / Log monitoring tools

Basic perf testing: lighthouse, webpagetests. Awareness of metrices like TTFB, TTI and their possible high no. causes

Security: SSL/TLS, CORS, XSS, CSRF, Access / Refresh Tokens / Encryptions, Validations / Encoding, HTTP Cookies / Sec. Headers, Sessions / Authentication / Authorization / protect user data, RBAC, ABAC

Accessibility: Understands A/ AA / AAA accessibility guidelines and write code adhering to meet the accessibility benchmarks, , Has a fair understanding to make dynamic content accessible with ARIA, Uses enhanced techniques to meet accessibility standards viz: skip navigation, no js etc. Creating accesible forms, content and best practices

DevOps

Gulp/Grunt - create tasks / custom scripts, Webpack / Parcel / Rollup - config from-ground setup, Code Splitting, Loaders and plugins, Understands GIT hooks and can use them. - Code bundling/minification/production ready assets using Webpack etc, Test Case runners. Docker, Vagrant and the differences.

- integrate plugins like sitespeed.io to ensure performance related checks on the pages

Logging Standards: Can customize logging framework to extend to create own formats with additional data like session id, hostname for log statements.

Estimation / Planning: Check understanding of top-down / bottom-up approaches and how estimations are refined over time, WBS / Poker. Planning for tracks, traging etc


Question

Temporal Dead Zone

Context in JavaScript (this keyword)

Configure gulp from scratch

Call, Apply & Bind

Tree shaking, follow up question

DevOps

Callback Function

Callback vs Promises

Media Query & Mobile First

Image src set

Web Accessibility / Diversity & Inclusion

Solid & Dry Principles

Design Pattern - JavaScript

ARIA Tags

Code compliance check tools

Screen Reader (read allowed function)

Why Meta tags are used in HTML?

What is HTML5 Web Storage? Explain localStorage and sessionStorage

The localStorage and sessionStorage objects, part of the web storage API, are two great tools for saving key/value pairs locally. Using localStorage and sessionStorage for storage is an alternative to using cookies and there are some advantages:

  • The data is saved locally only and can’t be read by the server, which eliminates the security issue that cookies present.
  • It allows for much more data to be saved (10mb for most browsers).
  • The syntax is straightforward.

What are the web sockets?

What is Server side and Client side rendering mechanism?

Can we have multiple header and footer in HTML?

Yes, but with a catch. The W3 documents state that the tags represent the header and footer areas of their nearest ancestor section. I would recommend having as many as your want, but only 1 of each for each "section" of your page, i.e. body, section etc.

What is Quirks mode in HTML5?

If we do not include the <!DOCTYPE> element in our HTML page or Document, it will go to Quirks Mode. In this mode, the HTML element depends on the browser. Hence the content will be displayed according to the browser.

What Is the Difference Between DOM, Shadow DOM and Virtual DOM?

DOM: Beginners often mislead DOM with what they create as an HTML structure of their website or application. But HTML becomes the DOM after the browser parses it, then it becomes the DOM. The definition says that DOM is an API for HTML or XML documents and it creates a logical structure which can be accessed and manipulated. Shadow DOM and Virtual DOM: The only thing which is common for both is that they help with performance issues. Both create a separate instance of the Document Object Model; besides this, both concepts are different. Virtual DOM is creating a copy of the whole DOM object, and Shadow DOM creates small pieces of the DOM object which has their own, isolated scope for the element they represent. Read more

Overloading and Overriding

Public, Private & Protected Modifiers

Interface

Are basically a specification identifying the related set of properties and methonds. It can be used as a data type, where we identify a set of properties for a specific type. It can be used by 'implements' keyword on a class, where we identify a feature set by declaring properties and methods, only declarations.

export interface interfaceName {
    property: type;
    method(): type;
}

Inheritance and Types of Inheritance in JavaScript

Filter function

Sorting inside array of JSON

Array function inside CONST

CORS headers

What is process.stdout.write

process.stdout.write console in same line.

Difference between ViewState and SessionState

Object.freeze() vs const

Object.freeze() prevents mutability. const prevents reassignment.

Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?

Every script has access to the global scope, and if everyone uses the global namespace to define their variables, collisions will likely occur. Use the module pattern (IIFEs) to encapsulate your variables within a local namespace.

What are the differences of GET / POST / PUT / DELETE?

What are variable prototyping?

What are object prototypes? What are difference between classes and prototypes? What are some potential problems that can arise when using prototypes?

How can we create a method such that every new array should be able to use it?

Grunt vs Gulp vs Webpack

Grunt and Gulp are task runners, while Webpack is a module bundler. Task runners are basically used to automate tasks in a development process. Some of these tasks include compressing JS files, compiling Sass files, watching out for file changes, minifying files and auto-prefixing. Module bundlers take several modules of the application that each have dependencies and bundle them into static assets. Module bundlers perform the task of task runners, and take several steps further.

The more complex a tool is, the more difficult it is to use it. Being task runners, Gulp and Grunt offer features like code minification, CSS preprocessing, unit testing and a list of others.

Compared to Grunt or Webpack, Gulp is a lot easier to use. It is possible to start up a project using Gulp in a few minutes. Grunt, however, has less configuration hassle than Webpack.

Does TypeScript support optional parameter in function (yes with ?)

TypeScript provides a Optional parameters feature. By using Optional parameters features, we can declare some parameters in the function optional, so that client need not required to pass value to optional parameters. We need to add a question mark "?" at the end of parameter name to mark this parameter optional. Below is the syntax.

  • function functionName(par1: number, par2?: number) {

  • // Code goes here...

  • }

Optional parameters always come last in the parameter list of function. We can not put optional parameter first and then required parameters in the function.

Decorators in TypeScript

A Decorator is a special kind of declaration that can be attached to a class declaration, method, accessor, property, or parameter.

Decorators use the form @expression, where expression must evaluate to a function that will be called at run-time with information about the decorated declaration.

The single purpose of a decorator in Angular is to attach metadata to a class.

There are four types of decorator:

  • Class decorators-@component
  • Property-@input
  • Method-@hostlistner
  • Parameter-@inject

Does TypeScript support Overloading

Components of TypeScript

Three components of typescript:

  • Language
  • The TypeScript Compiler
  • The TypeScript Language Services

ReadOnly TypeScript

What are Generics (in TypeScript)? How can we give some constraints to the Generic parameter?

What is TypeScript interface and how does it behave at compile time and run time?

What are TypeScript utility type?

What are generics in TypeScript?

What is the difference between 'unknown' and 'any' type in TypeScript?


Core XT Round

Front End Web Developer

Web Accessibility

Learn CSS

CSS Flexbox

CSS Grid

JavaScript

JavaScript & DOM

JavaScript Testing Best Practices

Vanilla JS

ES6

Responsive Images

Browser Rendering Optimization

Event Loop

Web Browser Event Loop


Framework Round

React

React Get Started

Fundamentals of Redux

React

Atomic Web Design

React Game

Universal React

Angular

Angular

Angular Basics

Angular Applications

Node, DevOps & Cloud Basics

Authentication & Authorization

Node Best Practices

Software Architecture

Web Architecture

Microservice Architecture

⚠️ **GitHub.com Fallback** ⚠️