JS Built-in Objects and Methods Flashcards
Метод JSON.stringify()
Метод JSON.stringify() перетворює значення JavaScript в рядок JSON, з заміною значень, якщо вказана функція заміни, або з включенням тільки певних властивостей, якщо зазначений масив заміни.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
Метод Array.from()
Array.from () дозволяє створювати масиви з:
- массивоподобних об’єктів (об’єктів з властивістю length і індексованими елементами)
- ітеруємих об’єктів (об’єктів, з яких можна дістати їх елементи, наприклад Map або Set).
function f() { return Array.from(arguments); } f(1, 2, 3); // [ 1, 2, 3 ]
Другим параметром методу є map функція, яка буде викликана для кожного елементу масиву.
Array.from([1, 2, 3], x => x + x); // [2, 4, 6]
Метод Array.indexOf()
Метод indexOf() повертає перший індекс, за яким даний елемент може бути знайдений в масиві або -1, якщо такого індексу немає.
Function.bind()
function foo(something) { console.log( this.a, something ); return this.a + something; }
var obj = { a: 2 };
var bar = foo.bind( obj );
var b = bar( 3 ); // 2 3 console.log( b ); // 5
bind(..) возвращает новую функцию, в которой жестко задан вызов оригинальной функции с именно тем контекстом this, который вы указываете.
Неважно как вы потом вызовете функцию bar, она всегда будет вручную вызывать foo с obj.
function foo(something) { console.log( this.a, something ); return this.a + something; }
// простая вспомогательная функция `bind` function bind(fn, obj) { return function() { return fn.apply( obj, arguments ); }; }
var obj = { a: 2 };
var bar = bind( foo, obj );
var b = bar( 3 ); // 2 3 console.log( b ); // 5
Определяем this
Вызвана с new? Используем только что созданный объект.
Вызвана с помощью call или apply (или bind)? Используем указанный объект.
Вызвана с объектом контекста, владеющего вызовом функции? Используем этот объект контекста.
По умолчанию: undefined в режиме strict mode, в противном случае объект global.
Вместо четырех стандартных правил привязки стрелочные функции ES6 используют лексическую область видимости для привязки this, что означает, что они заимствуют привязку this (какой бы она ни была) от вызова своей окружающей функции. Они по существу являются синтаксической заменой self = this в до-ES6 коде.