JS - Ageenkooo/JsTheory GitHub Wiki
JavaScript
Типы данных в JS. Приведение типов https://learn.javascript.ru/types-intro https://learn.javascript.ru/operators https://learn.javascript.ru/comparison https://learn.javascript.ru/types-conversion пояснение поведения map : https://www.quora.com/Exactly-why-does-10-10-10-10-10-map-parseInt-return-10-NaN-2-3-4-in-JavaScript
Что такое hoisting? https://habrahabr.ru/post/127482/
Let vs var. Const https://learn.javascript.ru/let-const https://medium.com/@vkozulya/es2015-%D0%BD%D0%B0-%D0%BF%D0%B0%D0%BB%D1%8C%D1%86%D0%B0%D1%85-var-let-%D0%B8-const-d194b902cfc0
Передача данных по ссылке и по значению. Примеры https://learn.javascript.ru/object-reference
{a: 10} == {a: 10}. Что вернет код? false тк разные ссылки
Что такое this? https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/this https://learn.javascript.ru/object-methods https://getinstance.info/articles/javascript/this-keyword-in-javascript/
Apply, call, bind. Для чего используются? В чем отличия? https://habrahabr.ru/post/199456/ https://www.reddit.com/r/javascript/comments/5ovl09/understanding_functionprototypebind_polyfill/ объяснение полифила //нутакое https://getinstance.info/articles/javascript/call-apply-and-bind-functions/ https://learn.javascript.ru/call-apply
немедленно вызываемая функция https://getinstance.info/articles/javascript/immediately-invoked-function-expressions/
use strict https://getinstance.info/articles/javascript/strict-mode-in-javascript/
объекты https://getinstance.info/articles/javascript/objects-in-javascript/
Замыкание. Приведите пример. https://getinstance.info/articles/javascript/closures-in-javascript/ https://getinstance.info/articles/javascript/variables-scope-in-javascript/
Sum(1)(2) https://learn.javascript.ru/task/sum-many-brackets https://learn.javascript.ru/task/closure-sum https://learn.javascript.ru/task/sum-arguments
хорошо а каррировании !!!!! https://habrahabr.ru/post/226325/
Prototype. Отличия proto от prototype. Пример наследования
proto : https://learn.javascript.ru/prototype prototype : https://learn.javascript.ru/new-prototype https://learn.javascript.ru/native-prototypes классы через функции : https://learn.javascript.ru/classes наследование : https://learn.javascript.ru/class-inheritance instanceOf : https://learn.javascript.ru/instanceof
Как создать объект без прототипа? Object.create(null)
Методы массива, перебирающие элементы массива
“hello world”.repeating(3) -> hello world hello world hello world. Как реализовать? изи https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/repeat
Браузерные события элементов. Отмена дефолтных событий браузера https://learn.javascript.ru/introduction-browser-events https://learn.javascript.ru/default-browser-action
Всплытие и перехват событий https://learn.javascript.ru/event-bubbling
Делегирование. Пример https://learn.javascript.ru/event-delegation
Напишите функцию F, так чтобы new F === F function F() { if (!(this instanceof F)) { return new F() }; ... }
имплементация new function New(func) { var res = {}; if (func.prototype !== null) { res.proto = func.prototype; } var ret = func.apply(res, Array.prototype.slice.call(arguments, 1)); if ((typeof ret === "object" || typeof ret === "function") && ret !== null) { return ret; } return res; }
function newOperator(Constr, args) { var thisValue = Object.create(Constr.prototype); // (1) var result = Constr.apply(thisValue, args); if (typeof result === 'object' && result !== null) { return result; // (2) } return thisValue; } https://habrahabr.ru/post/140810/
Function Declaration при use strict видны только внутри блока, в котором объявлены.
о большинстве особенностей кратко https://learn.javascript.ru/javascript-specials
промисы https://learn.javascript.ru/promise https://habrahabr.ru/company/zerotech/blog/317256/
fetch https://learn.javascript.ru/fetch
полифил object.create https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/create