JavaScript 2018 (and beyond!) (#504)
Some of the JavaScript questions are stale. I'm making an editorial pass to clean up those questions, removing stuff that's more 2008 than 2018.
This commit is contained in:
parent
021d2e6107
commit
c964a6daff
|
|
@ -4,51 +4,33 @@ layout: layouts/page.njk
|
|||
permalink: /questions/javascript-questions/index.html
|
||||
---
|
||||
|
||||
* Explain event delegation
|
||||
* Explain how `this` works in JavaScript
|
||||
* Explain how prototypal inheritance works
|
||||
* What do you think of AMD vs CommonJS?
|
||||
* Explain why the following doesn't work as an IIFE: `function foo(){ }();`.
|
||||
* What needs to be changed to properly make it an IIFE?
|
||||
* Explain event delegation.
|
||||
* Explain how `this` works in JavaScript.
|
||||
* Can you give an example of one of the ways that working with `this` has changed in ES6?
|
||||
* Explain how prototypal inheritance works.
|
||||
* What's the difference between a variable that is: `null`, `undefined` or undeclared?
|
||||
* How would you go about checking for any of these states?
|
||||
* What is a closure, and how/why would you use one?
|
||||
* What language constructions do you use for iterating over object properties and array items?
|
||||
* Can you describe the main difference between a `forEach` loop and a `.map()` loop and why you would pick one versus the other?
|
||||
* What's a typical use case for anonymous functions?
|
||||
* How do you organize your code? (module pattern, classical inheritance?)
|
||||
* What's the difference between host objects and native objects?
|
||||
* Difference between: `function Person(){}`, `var person = Person()`, and `var person = new Person()`?
|
||||
* What's the difference between `.call` and `.apply`?
|
||||
* Explain the difference between: `function Person(){}`, `var person = Person()`, and `var person = new Person()`?
|
||||
* Explain the differences on the usage of `foo` between `function foo() {}` and `var foo = function() {}`
|
||||
* Can you explain what `.call` and `.apply` do? What's the notable difference between the two?
|
||||
* Explain `Function.prototype.bind`.
|
||||
* What's the difference between feature detection, feature inference, and using the UA string?
|
||||
* Explain Ajax in as much detail as possible.
|
||||
* What are the advantages and disadvantages of using Ajax?
|
||||
* Explain how JSONP works (and how it's not really Ajax).
|
||||
* Have you ever used JavaScript templating?
|
||||
* If so, what libraries have you used?
|
||||
* Explain "hoisting".
|
||||
* Describe event bubbling.
|
||||
* Describe event capturing.
|
||||
* What's the difference between an "attribute" and a "property"?
|
||||
* Why is extending built-in JavaScript objects not a good idea?
|
||||
* Difference between window load event and document DOMContentLoaded event?
|
||||
* What are the pros and cons of extending built-in JavaScript objects?
|
||||
* What is the difference between `==` and `===`?
|
||||
* Explain the same-origin policy with regards to JavaScript.
|
||||
* Make this work:
|
||||
```javascript
|
||||
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
|
||||
```
|
||||
* Why is it called a Ternary operator, what does the word "Ternary" indicate?
|
||||
* What is `"use strict";`? what are the advantages and disadvantages to using it?
|
||||
* Create a for loop that iterates up to `100` while outputting **"fizz"** at multiples of `3`, **"buzz"** at multiples of `5` and **"fizzbuzz"** at multiples of `3` and `5`
|
||||
* Why is it, in general, a good idea to leave the global scope of a website as-is and never touch it?
|
||||
* Why would you use something like the `load` event? Does this event have disadvantages? Do you know any alternatives, and why would you use those?
|
||||
* Explain what a single page app is and how to make one SEO-friendly.
|
||||
* What is the extent of your experience with Promises and/or their polyfills?
|
||||
* What are the pros and cons of using Promises instead of callbacks?
|
||||
* What is strict mode? What are some of the advantages/disadvantages of using it?
|
||||
* What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
|
||||
* What tools and techniques do you use debugging JavaScript code?
|
||||
* What language constructions do you use for iterating over object properties and array items?
|
||||
* Explain the difference between mutable and immutable objects.
|
||||
* What is an example of an immutable object in JavaScript?
|
||||
* What are the pros and cons of immutability?
|
||||
|
|
@ -56,15 +38,21 @@ duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
|
|||
* Explain the difference between synchronous and asynchronous functions.
|
||||
* What is event loop?
|
||||
* What is the difference between call stack and task queue?
|
||||
* Explain the differences on the usage of `foo` between `function foo() {}` and `var foo = function() {}`
|
||||
* What are the differences between variables created using `let`, `var` or `const`?
|
||||
* What are the differences between ES6 class and ES5 function constructors?
|
||||
* Can you offer a use case for the new arrow `=>` function syntax? How does this new syntax differ from other functions?
|
||||
* What advantage is there for using the arrow syntax for a method in a constructor?
|
||||
* What is the definition of a higher-order function?
|
||||
* Can you give an example for destructuring an object or an array?
|
||||
* ES6 Template Literals offer a lot of flexibility in generating strings, can you give an example?
|
||||
* Can you give an example of generating a string with ES6 Template Literals?
|
||||
* Can you give an example of a curry function and why this syntax offers an advantage?
|
||||
* What are the benefits of using `spread syntax` and how is it different from `rest syntax`?
|
||||
* How can you share code between files?
|
||||
* Why you might want to create static class members?
|
||||
|
||||
## Coding questions
|
||||
* Make this work:
|
||||
```javascript
|
||||
duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
|
||||
```
|
||||
* Create a for loop that iterates up to `100` while outputting **"fizz"** at multiples of `3`, **"buzz"** at multiples of `5` and **"fizzbuzz"** at multiples of `3` and `5`
|
||||
|
|
|
|||
Loading…
Reference in New Issue