|
1 | 1 | {
|
2 | 2 | "Data Types & Variables": [
|
3 |
| - "what-are-the-primitive-data-types-in-javascript", |
| 3 | + "what-are-the-various-data-types-in-javascript", |
4 | 4 | "how-do-you-check-the-data-type-of-a-variable",
|
| 5 | + "whats-the-difference-between-a-variable-that-is-null-undefined-or-undeclared-how-would-you-go-about-checking-for-any-of-these-states", |
| 6 | + "what-are-the-differences-between-variables-created-using-let-var-or-const", |
| 7 | + "why-is-it-in-general-a-good-idea-to-leave-the-global-scope-of-a-website-as-is-and-never-touch-it", |
| 8 | + "how-do-you-convert-a-string-to-a-number-in-javascript", |
5 | 9 | "what-are-template-literals-and-how-are-they-used",
|
6 | 10 | "explain-the-concept-of-tagged-templates",
|
7 | 11 | "what-is-the-spread-operator-and-how-is-it-used",
|
8 |
| - "what-is-the-difference-between-null-and-undefined", |
9 |
| - "how-do-you-convert-a-string-to-a-number-in-javascript", |
10 |
| - "what-are-global-variables-and-why-are-they-generally-avoided" |
| 12 | + "what-are-symbols-used-for", |
| 13 | + "what-are-proxies-in-javascript-used-for" |
11 | 14 | ],
|
12 | 15 | "Hoisting": [
|
13 | 16 | "explain-hoisting",
|
|
17 | 20 | "how-can-you-avoid-problems-related-to-hoisting"
|
18 | 21 | ],
|
19 | 22 | "Operators & Control Flow": [
|
20 |
| - "explain-the-difference-between-the-double-equal-and-triple-equal-operators", |
21 |
| - "what-are-the-different-types-of-loops-in-javascript", |
| 23 | + "what-is-the-difference-between-double-equal-and-triple-equal", |
| 24 | + "what-language-constructs-do-you-use-for-iterating-over-object-properties-and-array-items", |
22 | 25 | "what-is-the-purpose-of-the-break-and-continue-statements",
|
23 | 26 | "what-is-the-ternary-operator-and-how-is-it-used",
|
24 |
| - "what-is-the-difference-between-forin-and-forof-loops", |
25 | 27 | "how-do-you-access-the-index-of-an-element-in-an-array-during-iteration",
|
26 | 28 | "what-is-the-purpose-of-the-switch-statement",
|
27 | 29 | "what-are-rest-parameters-and-how-are-they-used",
|
28 | 30 | "explain-the-concept-of-the-spread-operator-and-its-uses",
|
29 |
| - "what-are-the-benefits-of-using-spread-syntax-and-how-is-it-different-from-rest-syntax" |
| 31 | + "what-are-the-benefits-of-using-spread-syntax-and-how-is-it-different-from-rest-syntax", |
| 32 | + "what-are-iterators-and-generators-and-what-are-they-used-for" |
30 | 33 | ],
|
31 | 34 | "Functions": [
|
32 | 35 | "explain-the-differences-on-the-usage-of-foo-between-function-foo-and-var-foo-function",
|
33 |
| - "explain-the-difference-between-global-scope-function-scope-and-block-scope", |
34 |
| - "explain-the-concept-of-scope-in-javascript", |
35 | 36 | "what-is-the-difference-between-a-parameter-and-an-argument",
|
36 | 37 | "explain-the-concept-of-hoisting-with-regards-to-functions",
|
37 |
| - "what-are-arrow-functions-and-how-do-they-differ-from-regular-functions", |
| 38 | + "whats-the-difference-between-call-and-apply", |
| 39 | + "can-you-offer-a-use-case-for-the-new-arrow-function-syntax-how-does-this-new-syntax-differ-from-other-functions", |
38 | 40 | "difference-between-function-person-var-person-person-and-var-person-new-person",
|
39 |
| - "explain-the-concept-of-higher-order-functions", |
| 41 | + "what-is-the-definition-of-a-higher-order-function", |
40 | 42 | "what-are-callback-functions-and-how-are-they-used",
|
| 43 | + "whats-a-typical-use-case-for-anonymous-functions", |
41 | 44 | "what-is-recursion-and-how-is-it-used-in-javascript",
|
42 |
| - "what-are-default-parameters-and-how-are-they-used" |
| 45 | + "what-are-default-parameters-and-how-are-they-used", |
| 46 | + "explain-why-the-following-doesnt-work-as-an-iife-function-foo--what-needs-to-be-changed-to-properly-make-it-an-iife" |
43 | 47 | ],
|
44 | 48 | "Objects & Arrays": [
|
45 |
| - "what-are-the-different-ways-to-create-an-object-in-javascript", |
| 49 | + "what-are-the-various-ways-to-create-objects-in-javascript", |
46 | 50 | "explain-the-difference-between-dot-notation-and-bracket-notation-for-accessing-object-properties",
|
47 | 51 | "what-are-the-different-methods-for-iterating-over-an-array",
|
48 | 52 | "how-do-you-add-remove-and-update-elements-in-an-array",
|
|
60 | 64 | "how-do-you-reliably-determine-whether-an-object-is-empty"
|
61 | 65 | ],
|
62 | 66 | "Asynchronous JavaScript": [
|
| 67 | + "what-is-event-loop-what-is-the-difference-between-call-stack-and-task-queue", |
63 | 68 | "explain-the-difference-between-synchronous-and-asynchronous-functions",
|
64 | 69 | "explain-the-concept-of-a-callback-function-in-asynchronous-operations",
|
65 | 70 | "what-are-promises-and-how-do-they-work",
|
66 | 71 | "explain-the-different-states-of-a-promise",
|
67 |
| - "what-are-the-advantages-of-using-promises-over-callbacks", |
| 72 | + "what-are-the-pros-and-cons-of-using-promises-instead-of-callbacks", |
68 | 73 | "what-is-the-use-of-promiseall",
|
69 | 74 | "how-is-promiseall-different-from-promiseallsettled",
|
70 | 75 | "what-is-asyncawait-and-how-does-it-simplify-asynchronous-code",
|
71 | 76 | "how-do-you-handle-errors-in-asynchronous-operations",
|
72 |
| - "what-is-the-event-loop-and-how-does-it-relate-to-asynchronous-javascript", |
73 | 77 | "explain-the-concept-of-a-microtask-queue",
|
74 |
| - "what-is-the-difference-between-settimeout-setimmediate-and-processnexttick", |
75 |
| - "what-are-the-different-ways-to-make-an-api-call-in-javascript" |
| 78 | + "what-is-the-difference-between-settimeout-setimmediate-and-processnexttick" |
76 | 79 | ],
|
77 | 80 | "Prototypes & Inheritance": [
|
78 | 81 | "explain-how-prototypal-inheritance-works",
|
|
81 | 84 | "explain-the-concept-of-inheritance-in-es2015-classes",
|
82 | 85 | "what-is-the-purpose-of-the-new-keyword",
|
83 | 86 | "how-do-you-create-a-constructor-function",
|
84 |
| - "explain-the-concept-of-classes-in-es2015-and-how-they-differ-from-constructor-functions", |
85 |
| - "what-are-static-methods-in-classes" |
| 87 | + "what-are-the-differences-between-es6-class-and-es5-function-constructors", |
| 88 | + "what-advantage-is-there-for-using-the-arrow-syntax-for-a-method-in-a-constructor", |
| 89 | + "why-you-might-want-to-create-static-class-members" |
86 | 90 | ],
|
87 | 91 | "Closures & Scope": [
|
88 | 92 | "what-is-a-closure-and-how-why-would-you-use-one",
|
89 | 93 | "explain-the-concept-of-lexical-scoping",
|
| 94 | + "explain-the-concept-of-scope-in-javascript", |
90 | 95 | "how-can-closures-be-used-to-create-private-variables",
|
91 | 96 | "what-are-the-potential-pitfalls-of-using-closures",
|
92 | 97 | "explain-the-difference-between-global-scope-function-scope-and-block-scope"
|
93 | 98 | ],
|
94 | 99 | "This Keyword": [
|
95 | 100 | "explain-how-this-works-in-javascript",
|
| 101 | + "explain-function-prototype-bind", |
96 | 102 | "explain-the-different-ways-the-this-keyword-can-be-bound",
|
97 |
| - "how-does-the-this-keyword-behave-in-arrow-functions", |
98 | 103 | "what-are-the-common-pitfalls-of-using-the-this-keyword",
|
99 | 104 | "explain-the-concept-of-this-binding-in-event-handlers"
|
100 | 105 | ],
|
101 | 106 | "DOM Manipulation & Events": [
|
102 | 107 | "what-is-the-dom-and-how-is-it-structured",
|
| 108 | + "whats-the-difference-between-an-attribute-and-a-property", |
103 | 109 | "explain-the-difference-between-documentqueryselector-and-documentgetelementbyid",
|
104 | 110 | "how-do-you-add-remove-and-modify-html-elements-using-javascript",
|
105 | 111 | "what-are-event-listeners-and-how-are-they-used",
|
|
109 | 115 | "explain-event-delegation",
|
110 | 116 | "how-do-you-prevent-the-default-behavior-of-an-event",
|
111 | 117 | "what-is-the-difference-between-eventpreventdefault-and-eventstoppropagation",
|
| 118 | + "what-is-the-difference-between-mouseenter-and-mouseover-event", |
112 | 119 | "what-is-the-difference-between-innerhtml-and-textcontent",
|
113 | 120 | "how-do-you-manipulate-css-styles-using-javascript"
|
114 | 121 | ],
|
|
117 | 124 | "what-is-the-difference-between-the-window-object-and-the-document-object",
|
118 | 125 | "describe-the-difference-between-a-cookie-sessionstorage-and-localstorage",
|
119 | 126 | "how-do-you-make-an-http-request-using-the-fetch-api",
|
120 |
| - "what-are-web-workers-and-how-can-they-be-used", |
| 127 | + "what-are-the-different-ways-to-make-an-api-call-in-javascript", |
| 128 | + "explain-ajax-in-as-much-detail-as-possible", |
| 129 | + "what-are-the-advantages-and-disadvantages-of-using-ajax", |
| 130 | + "what-are-the-differences-between-xmlhttprequest-and-fetch", |
| 131 | + "how-do-you-abort-a-web-request-using-abortcontrollers", |
| 132 | + "explain-how-jsonp-works-and-how-its-not-really-ajax", |
| 133 | + "what-are-workers-in-javascript-used-for", |
121 | 134 | "explain-the-concept-of-the-web-socket-api",
|
122 |
| - "what-are-polyfills-used-for", |
| 135 | + "what-are-javascript-polyfills-for", |
123 | 136 | "how-do-you-detect-if-javascript-is-disabled-on-a-page",
|
124 | 137 | "what-is-the-intl-namespace-object-for",
|
125 | 138 | "how-do-you-validate-form-elements-using-the-constraint-validation-api",
|
126 | 139 | "how-do-you-use-windowhistory-api",
|
127 | 140 | "how-do-iframe-on-a-page-communicate",
|
128 |
| - "how-do-you-cancel-a-fetch-request", |
129 | 141 | "difference-between-document-load-event-and-document-domcontentloaded-event",
|
130 | 142 | "how-do-you-redirect-to-a-new-page-in-javascript",
|
131 | 143 | "how-do-you-get-the-query-string-values-of-the-current-page-in-javascript",
|
| 144 | + "what-are-server-sent-events", |
132 | 145 | "what-are-progressive-web-applications-pwas"
|
133 | 146 | ],
|
134 | 147 | "Modules": [
|
135 | 148 | "what-are-modules-and-why-are-they-useful",
|
136 |
| - "explain-the-difference-between-commonjs-and-es-modules", |
| 149 | + "explain-the-differences-between-commonjs-modules-and-es-modules", |
137 | 150 | "how-do-you-import-and-export-modules-in-javascript",
|
138 | 151 | "what-are-the-benefits-of-using-a-module-bundler",
|
139 | 152 | "explain-the-concept-of-tree-shaking-in-module-bundling",
|
140 |
| - "what-are-the-metadata-fields-of-a-module" |
| 153 | + "what-are-the-metadata-fields-of-a-module", |
| 154 | + "what-do-you-think-of-amd-vs-commonjs" |
141 | 155 | ],
|
142 | 156 | "Error Handling": [
|
143 | 157 | "what-are-the-different-types-of-errors-in-javascript",
|
|
155 | 169 | ],
|
156 | 170 | "Sets & Maps": [
|
157 | 171 | "what-are-sets-and-maps-and-how-are-they-used",
|
158 |
| - "how-do-maps-in-javascript-differ-from-objects", |
159 |
| - "what-are-some-use-cases-for-using-a-weakset-or-weakmap-in-javascript", |
| 172 | + "what-are-the-differences-between-map-set-and-weakmap-weakset", |
160 | 173 | "how-do-you-convert-a-set-to-an-array-in-javascript",
|
| 174 | + "what-is-the-difference-between-a-map-object-and-a-plain-object-in-javascript", |
161 | 175 | "how-do-sets-and-maps-handle-equality-checks-for-objects"
|
162 | 176 | ],
|
163 | 177 | "Performance Optimization": [
|
|
192 | 206 | "explain-the-concept-of-the-prototype-pattern",
|
193 | 207 | "what-is-the-decorator-pattern-and-how-is-it-used",
|
194 | 208 | "explain-the-concept-of-the-strategy-pattern",
|
195 |
| - "what-is-the-command-pattern-and-how-is-it-used" |
| 209 | + "what-is-the-command-pattern-and-how-is-it-used", |
| 210 | + "why-is-extending-built-in-javascript-objects-not-a-good-idea" |
196 | 211 | ],
|
197 | 212 | "Security": [
|
198 | 213 | "what-is-cross-site-scripting-xss-and-how-can-you-prevent-it",
|
|
204 | 219 | "how-can-you-prevent-clickjacking-attacks",
|
205 | 220 | "explain-the-concept-of-input-validation-and-its-importance-in-security",
|
206 | 221 | "what-are-some-tools-and-techniques-for-identifying-security-vulnerabilities-in-javascript-code",
|
207 |
| - "how-can-you-implement-secure-authentication-and-authorization-in-javascript-applications" |
| 222 | + "how-can-you-implement-secure-authentication-and-authorization-in-javascript-applications", |
| 223 | + "explain-the-same-origin-policy-with-regards-to-javascript" |
| 224 | + ], |
| 225 | + "Misc": [ |
| 226 | + "what-is-use-strict-what-are-the-advantages-and-disadvantages-to-using-it", |
| 227 | + "what-tools-and-techniques-do-you-use-for-debugging-javascript-code", |
| 228 | + "how-does-javascript-garbage-collection-work", |
| 229 | + "explain-what-a-single-page-app-is-and-how-to-make-one-seo-friendly", |
| 230 | + "how-can-you-share-code-between-files", |
| 231 | + "how-do-you-organize-your-code-module-pattern-classical-inheritance", |
| 232 | + "what-are-some-of-the-advantages-disadvantages-of-writing-javascript-code-in-a-language-that-compiles-to-javascript", |
| 233 | + "when-would-you-use-document-write" |
208 | 234 | ]
|
209 | 235 | }
|
0 commit comments