JavaScript Flashcards

1
Q

Что делает символ %

A

Определяет остаток от деления двух чисел - 12 % 5 = 2 // потому что 12 на 5 не делится. но можно поделить на 2. 5*2=10 и еще до 12 остается 2.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Зачем делать свой конструктор объекта

A
что бы было не 3 строки при создании объекта: 
var harry_potter = new Object();
harry_potter.pages = 350;
harry_potter.author = "J.K. Rowling";
а 1:
var the_hobbit = new Book(320, "J.R.R. Tolkien")
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что делает hasOwnProperty

A

возвращает ТРУ если у объекта есть свойства, указанные в аргументе этой функции

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Для чего нужен прототип

A

prototype нужен для ООП, в случае если нету прямого доступа к коду, где создавался класс. Через прототип мы можем добавить метод к этому классу не меняя код самого класса:

className.prototype.newMethod = function() {
statements;
};

А еще можно создать новый класс на основе уже готового:

className.prototype = new oldClassName();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Если определить переменную через var в функции или классе, что произойдет?

A

нельзя будет получить эту переменную вне функции или класса

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
Как можно сократить такое выражение:
if(a){
   return a.member;
}else{
   return a;
}
A

return a && a.member;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
Что это означает:
label : for( ; ; ) {
   if ( ) {
      break label;
   }
}
A

Можно давать имена циклам, и обрывать их

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как задать цвет бекграунда элемента используя JS

A

ElementName.style.backgroundColor = “white”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Зачем в ХТМЛ-е давать ссылку на внешнюю js библиотеку, а не располагать ее у себя на хостинге

A

Мощные CDN сервера быстрее доставят библиотеку чем свой хостинг. + место экономится.
Еще важно что эти библиотеки много кто использует и обычно у юзеров они загружены в кеш браузера
+ есть лимит у браузеров на количество запросов с одного домена, а подключая библиотеку с внешних источников домен уже другой

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что такое “use strict”

A

По умолчанию JS выполняет код даже если там были незначительные ошибки. Включив этот мод браузер будет выдавать даже самые незначительные ошибки.
Что бы его включить, в начале скрипта нужно написать “use strict”;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что делает строка return; в конце кода if

A

если условие выполнено - то вышестоящая функция останавливается

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Почему можно не заканчивать строку точкой с запятой

A

JS автоиатически добавляет точку с запятой для каждой строки

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что будет если сравнить 2 строки “A” < “B”

A

Выдаст тру, потому что А стоит выше по алфавиту чем В

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как интерпретируется следующий код, помещеный внутри функции:

console.log(a);
var a = 11;
A

var a;
console.log(a);
a=11;

И если вне функции была уже переменная “а”, то она затрется внутри функции и при ее выводе получим андефайнд.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

зачем начинать свой скрипт с ;

A

если в скрипте который загружается перед нашим скриптом будет в конце пропущена ; то ошибки не будет, так как мы ставим эту ; в начале нашего

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как сразу запускать анонимную функцию

A
function(){
}()
в конце добавляем 2 скобки
17
Q

Где лучше объявить переменные, которые нужны только при выполнении циклов?

A
for (var i=0, newVar = SomeStuff ; i>10;i++) {
};
Таким образом производительность будет максимальной
18
Q

Если мы делаем конструктор и в нем будут методы, то как сделать так что бы эти методы не копировались каждый раз при создании нового объекта

A

Нужно описывать методы не в теле функции, а через прототипы

19
Q

что такое document.createDocumentFragment()

A

Это временный объект, который можно создать и заполнять на пример при каждой итерации цикла, а по завершении всех циклов мы берем этот фрагмент и вставляем в DOM. В ином случае нам бы в каждом цикле нужно было бы вставлять в DOM, а каждая такая операция ресурсоемкая.

20
Q

Как сделать модуль с приватными (которые можно вызвать только внутри функции) переменными?

A
var ARMORY = (function(){
    var privateV = "some data";
    var privateM = function(){
        return "some private method"
    }
    return {
        publicV : "some data",
        privateM = function(){}
    }
}());

Таким образом ARMORY.privateV выдаст ошибку, а ARMORY.publicV выдаст “some data”

Подробнее в курсе “JavaScript Best Practices”

21
Q

Как передать в модуль глобальные переменные, что бы их чтение было более быстрым

A
var GLOBALV = "some data";
var MODULE = (function(globV){
     console.log(globV);
}(GLOBALV));

Подробнее в курсе “JavaScript Best Practices”

22
Q

Что такое augmentation в модульном JS

A

Это когда мы создаем в одном файле модуль, а в другом берем этот модуль и изменяем его, меняя его исходник

firstfile.js

var MODULE = (function(){
    return {
        data : "not edited"
    }
}());

seccondfile.js

var MODULE = (function(module){
    module.data = "edited"
return module }(MODULE));

Подробнее в курсе “JavaScript Best Practices”

23
Q

Как можно использовать “with”

A
var Class = function(){
    with(this) {
        width = 100;
    }
}

вместо этого

var Class = function(){
    this.width = 100;
}