Last active
August 29, 2015 14:22
-
-
Save Alex-Space/c77caa5edc871ba78c02 to your computer and use it in GitHub Desktop.
doc JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Непонятное: | |
callback функция (функция обратного вызова?) | |
Когда выучу теорию JS, буду практиковать тут http://www.codewars.com/ | |
Прочитать книжку - JavaScript: The Good Parts | |
«Красноречивый JavaScript»: Замечательная книга (также доступна печатная версия), посвящённая основам JavaScript | |
Тестовая оценка владения JS: подборка тестов с ошибками на различные темы по JavaScript; сможете ли вы переписать код тестов так, чтобы он заработал? | |
10 вещей, которым я научился из исходного кода jQuery — старенькая, но мощная вещь от Пола Айриша, демонстрирующая чему можно научиться, читая чужой код. | |
http://www.w3resource.com/javascript-exercises/ - задачи по JS и не только | |
http://www.codewars.com/ - задачи по JS и не только | |
http://bonsaiden.github.io/JavaScript-Garden/ru/ | |
http://largescalejs.ru/ | |
http://learn.javascript.ru/ | |
http://cidocs.ru/coffeescript/ | |
http://contribute.jquery.org/style-guide/js/ - стайл гайд | |
http://karmazzin.gitbooks.io/eloquentjavascript_ru/ - отличная книжка, которую перевели на русский | |
http://nnm-club.me/forum/viewtopic.php?t=720358 - вторая часть с сайта Codeschool по JS, первая часть у них на сайте бесплатная ( там же бесплатный доступ на 2 дня от многих, они суммируются) | |
http://habrahabr.ru/post/119851/ - как выучу JS вернуться к этой статье | |
http://habrahabr.ru/post/239065/ - вопросы на собеседовании по JS | |
Замыкание - способность функции замыкать ссылку на переменную из вышестоящего контекста | |
Литерал – это любое значение указанное явным образом в коде. (это значение, которое не нужно вычислять. (var str = "sdfsdf")) | |
Примитивные типы данных в JS - Строка, число, объект, undefiend, null, boolean | |
Statement - инструкция, то из чего состоит JS код. | |
semicolon - точка с запятой | |
expression - выражение, оно всегда возвращает какое-либо значение | |
CamelCase - верблюжий стиль | |
UnderCase - нотация черз нижнее подчеркивание | |
underscore - стиль нижнего подчеркивания | |
JS - это объектно ориентированный язык программирования с прототипной формой наследования. Он клиентский и единственный, который понимается всеми браузерами. | |
Преимущество JS в том, что можно использовать особенность, которая заключается в том, что простые типы данных ведут себя как объекты. Можно сразу передать значение в переменную, без обертки, которая определяет тип данных. | |
Есть бинарные, унарные и тернарные операторы. Они отличаются количеством операндов: | |
унарный - это когда используется один операнд (++i) | |
бинарный - это когда два операнда(2 + 2) | |
тернарный (? :) | |
Работа с числами: | |
.toFixed(количество знаков после запятой) - метод приводит число к числу с плавающей точкой | |
.toExponential() - приводит число к экспоненциальному виду | |
.toPrecision(до какого количества цифр округлить) - округление до необходимого кол. цифр, включая знаки после запятой | |
.toString() - метод перевода числового типа в троку | |
Методы работы с объектом Math - это сложные математические вычисления: | |
Math.sqrt(тут пишем число, которое будем преобразовывать в корень) - вычисление корня | |
Math.pow(5, 2) - возведение в степень. Первое число это число которое возводят, а второе, число и есть степень в которую возводят. | |
Math.floor(пишем число, или переменную с числом) - медот округления к целому меньшему числу. 234.70 округлит в 234 | |
Math.pow() - метод округления к большему числу | |
Math.round - метод округления к тому числу, которое ближе к целому. 234.7 округлит к 235, а 234.4 округлит к 234. (5.5 округлит в 6) | |
NaN - not a number (это значение, которое нельзя вычислить) например fsdfsdf+4 | |
NaN токсичен, это значит, что если в какой-то части выражения что-то нельзя вычислись, то все выражение в целом принимает значение NaN | |
Есть специальная функция проверяющая выражение на NaN. isNaN() - если в скобках написать выражение которое можно вычислить, покажет false если выражение в скобках нельзя вычислить, тогда будет false | |
Infinity - это бесконечность. Бывает положительная бесконечность(Infinity) и отрицательная(-Infinity). Бесконечность всегда больше любого числа, чтобы к ней не прибавить, она будет бесконечностью. | |
Строковый тип данных и методы для работы с ними: | |
.charAt(число) - показывает символ в строчном типе данных в соответствии с индексом. | |
.charCodeAt() - возвращает код симовола | |
.substring(5, 10 - выведет с пятого по десятый символ в строке) - выводит стоку с того символа, индекс которого вводим в первый аргумент, а во второй можно ввести индекс того символа в троке, по какой нам нужно вернуть значение. | |
.slice(-10 это значит что он выведет 10 символов с конца строки) - метод выводит с конца необходимое количество символов | |
.substr(14, 7 - выведет 7 символов начиная с 14-го) - имеет 2 агрумента в скобках, первый - с какого символа выводить, второй - сколько нужно вывести символов | |
.splite(' тут будет сепаратор, который указывает на разделяемые части в строке') - разбивает строку на массив из слов-символов, и в качестве разделителя элементов массива можем выбрать любой символ в строке, который будет разделять эту строку. | |
.replace() - метод замены одного на другое. Имеет два параметра, в качестве первого аргумента указывается то что меняем, в качестве второго, то, на что меняем. | |
Заменяет только первое встреченное значение. Если есть и второе, или больше, оно их не трогает. | |
.indexOf("a" - вернет значение индекса первого символа a который встретит) - находит индекс символа в строке по символу | |
.toUpperCase() - к верхнему регистру, без параметров | |
.toLowerCase() - к нижнему регистру, без параметров | |
Преобразование типов данных. Данные можно превращать друг в друга. Есть три преобразования: Логическое, числовое, строковое. | |
.toString() // привести переменную к строковому значению, к которой применяется этот метод | |
parseInt('строчный тип данных содержащий число, напирмер 100 px', 10 - это приведение числа к десятичному, можно не писать второй аргумент); // вытаскивает из строчного типа данных все целые числа | |
parseFloat("10.24em", 10); // вытаскивает из строчного типа данных все числа с плавающей точкой | |
(123 + '') // переводит в строку | |
(+'123') // переводит в числовой тип данных | |
(+"") // переводит значение в 0. Пустая строка - false, + переводит в число, получается 0 | |
(+true) // Тут получается 1 | |
(+false) // Тут получается 0 | |
(!!"23") // В булевое значение - true. 23 это тру, хоть и строчный тип данных, переворачиваем с !, и получаем false, и еще раз ! получаем true. | |
Объекты. Объект это контейнер из ключей и свойств к этим ключам. В JS объектами являются сами объекты, функции, регулярные выражения, массивы. В ним не относятся простые типы данных. | |
Есть 2 нотации обращения к свойствам объектов. Точечная нотация, самая распространенная (obj.property). И есть нотация квадратных скобок obj[property] | |
Если нам нужно какое-то свойство по умолчанию, делают так (obj.nostring || 'значение по умолчанию') | |
Объекты всегда являются ссылками, они не копируются. | |
Если нам надо удалить какое-нибудь свойство объекта, мы делаем: | |
(delete obj.property) - удаляется только свойство объекта, свойство прототипа не удаляется | |
Массивы - упорядоченные наборы данных, перечисленные индексами. | |
Чтобы удалить элемент массива, нужно использовать метод .splice(первый атрибут - с какого удаляем, второй атрибут, сколько удаляем); Так у нас не будет никаких дырок в массиве с undefiend. | |
Когда нужно преобразовать массив в строку, используем метод .join(", "). В параметры которого указываем разделитель, который будет разделять слова в строке. | |
.push("new_str") - метод добавляет в конец массива необходимый элемент. В качестве аргумента принимает новый элемент массива | |
.pop() - метод удаляет из конца массива последний элемент. Аргументов не содержит. | |
.shift() - удаляет первый элемент массива. Без параметров. | |
.unshift() - добавляет в начало массива новый элемент | |
.reverse() - переворачивает массив в обратную сторону. Первый элемент массива становится последним, и так далее. Без параметров. | |
.slice() - режет массив. Имеет 2 параметра. Первый - с какого индекса резать, второй - по какой индекс резать. Все что попало в промежуток и будет новым массивом. | |
.sort() - метод сортирует массив. По дефолту работает не корректно, и в параметры нужно писать свою функцию. | |
.concat() - метод создает и возвращает новый массив, в параметры передаем аргументы, которые хотим присоединить к массиву, для которого вызывается метод. | |
Циклы. В JS есть 4 типа циклов. У всех циклов есть условие, и выражение, т.е. тело цикла. Один проход цикла называется - итерация. В цикле переменные не задавать(совет Sorax)! | |
for () {} - имеет три параметра записывающиеся через semicolons 1) инициализация, условие, инкремент(дикремент). ( for(var i; i<10; i++) ) | |
for ( property in obj) {} - обычно используется для обхода объектов. | |
while () {} - самый простой цикл. Пока условие истинно, тело цикла будет выполняться. | |
do while () {} - Сначала выводит тело цикла, а потом проверяет условие. Даже если условие false, тело цикла будет выполнено хотя бы один раз. После do пишется команда, что нужно сделать, например console.log('Hello!') | |
Функции. | |
.call() - метод применяется когда я хочу вызвать функцию как метод какого-то объекта. В качесвте параметров передается тот самый объект, а дальше остальные параметры - это уже парамерты самой функции с которыми мы хотим ее вызвать как метод. | |
.apply() - метод применяется |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment