Конспект JS-course

Конспект. Методы

Источник: http://forum.jscourse.com/t/04-konspekt-metody/579

Автор конспекта: @Nikolay

Правки: @dmitry

Методы массивов

Метод – это какое-то действие которое связанно с объектом и выполняет определенную функцию. Методы привязаны к объектам. Например все числа имеют метод toString, все строки – метод split.

Math.round(10.10); // вызов метода

Метод объекта Math

Разные методы могут как принимать аргументы ((10.10) - аргумент), так и не принимать. Также следует учитывать, что конкретный метод может вести себя по разному в зависимости от того, что ему передано в качестве аргументов.

Метод split

Если метод split вызывается с пустой строк(без аргумента), то он разбивает строку посимвольно, иначе - использует заданный аргумент и разбивает по нему.

var str = 'http://forum.jscourse.com/t/02-zadanie-igra-ugadajka-pochitat-pro-massivy-obekty-czikly/482';
str.split('/');

Output:
[ "http:", "", "forum.jscourse.com", "t", "02-zadanie-igra-ugadajka-pochitat-pro-massivy-obekty-czikly", "482" ]

Метод может изменять объект/значение с которым он вызван. Например метод push.

var arr = [];
arr.push('one');
console.log(arr); // ["one"]

Следует очень внимательно использовать методы, которые изменяют объекты, переданные им для операций. Это важно потому что этот переданный объект может быть использован в другой части кода, что приведет к ошибкам. Лучше сделать копию обьекта/значения с которым планируется работать.

Копирование массивов

Для копирование массивов чаще всего используется метод slice. Синтаксис - arrayObj.slice( start[, end] )

var obj = {};
var arr = [obj, 'two', 'three', 'four', 'five'];
var arrCopy = arr.slice();
var arrCopy1 = arr.slice(1);
var arrCopy2 = arr.slice(1, 2);
console.log('arrCopy', arrCopy); // arrCopy [{}, "two", "three", "four", "five"]
console.log('arrCopy1', arrCopy1); // arrCopy1 ["two", "three", "four", "five"]
console.log('arrCopy2', arrCopy2); //arrCopy2 ["two"]
Если мы сравним объкты – то они разные

arr === arrCopy // false

А если сравним первые елементы этих обьектов, то они одинаковые

arr[0] === arrCopy[0]
// true

Копию обьекта также можно сделать с помощь следующих методов: с помощью JSON.stringify – превратить обьект в строку, а с помощью метода JSON.parse – обратно в обьект.

Добавить элемент в массив (с конца) можно использовать следующие способы:

arr[arr.length - 1] = 'item'; // или
arr.push('item');

Лучше использовать метод push - он понятней

Метод sort

Метод sort изменяет массив и если его вызывать без аргумента, то он пытается привести все елементы массива к строкам и сравнивает их. Синтаксис - arrayObj.sort( [sortFunction] )

PolyFill

Если вы хотите использовать метод, которые не поддерживается той или иной версией браузера, то необходимо использовать PolyFill (полизаполнения).

PolyFill - это отрывок кода (скрипт) который вставляется в браузер, и который реализует возможность использовать конкретный метод (функцию) в браузерах которые ее не поддерживают.

Следует обращать внимание, какие методы являются стандартными и поддерживаться всеми браузерами, а какие – нет.

Для выполнения такой проверки есть полезный ресурс - http://caniuse.com/