JavaScript с нуля
JavaScript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное
👉 @frontendInterview
JavaScript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное
👉 @frontendInterview
В чём опасность использования for .. in для объекта или массива?
For..in итерируется по всем полям объекта и его прототипов (т.е. проходит по всей цепочке прототипов).
В приведённом в вопросе коде проблем как таковых нет, но они могут появиться при использовании библиотек/полифиллов, которые переопределяют или создают новые свойства для прототипов стандартных конструкторов (таких как Array или Object).
Пример:
Модифицированный пример, который работает корректно:
For..in итерируется по всем полям объекта и его прототипов (т.е. проходит по всей цепочке прототипов).
В приведённом в вопросе коде проблем как таковых нет, но они могут появиться при использовании библиотек/полифиллов, которые переопределяют или создают новые свойства для прототипов стандартных конструкторов (таких как Array или Object).
Пример:
var arr = [3, 4, 5];Выведет
Array.prototype.each = function() {/*some fancy polyfill*/};
for (var i in arr) {
console.log(i);
}
0Чтобы избежать таких проблем, можно воспользоваться методом Object.prototype.hasOwnProperty.
1
2
each
Модифицированный пример, который работает корректно:
var arr = [3, 4, 5];👉 @frontendInterview
Array.prototype.each = function() {/*some fancy polyfill*/};
for (var i in arr) {
if (arr.hasOwnProperty(i)){
console.log(i);
}
}
Как удалить элемент из localStorage?
Anonymous Quiz
7%
localStorage.deleteItem("name")
12%
localStorage.delete("name")
36%
localStorage.remove("name")
45%
localStorage.removeItem("name")
Какие языковые конструкции в javanoscript создают scope? Что произойдет при выполнении куска кода с картинки?
В javanoscript только функции создают новый scope.
Код в вопросе аналогичен следующему:
👉 @frontendInterview
В javanoscript только функции создают новый scope.
Код в вопросе аналогичен следующему:
var a = 90100;Результат выполнения:
function someFunc(){
var a;
var b;
if(false){
a = 1;
} else {
b = 2;
}
console.log(b);
console.log(a); //(1) переменную a переопределили в функции
}
someFunc();
2
undefined👉 @frontendInterview
Это число?
Напишите функцию, которая преобразует строку в число и вернет true, если полученный результат действительно является числом и false, если результат не валиден.
Примеры:
👉 @frontendInterview
Напишите функцию, которая преобразует строку в число и вернет true, если полученный результат действительно является числом и false, если результат не валиден.
Примеры:
isDigit("3")
isDigit(" 3 ")
isDigit("-3.23")
Вернут true isDigit("3-4")
isDigit(" 3 5")
isDigit("3 5")
isDigit("zero")
Вернут false👉 @frontendInterview
Сколько значений можно передать в CSS свойство margin?
Anonymous Quiz
1%
1
1%
2
2%
3
53%
4
44%
Любое количество из перечисленных выше
Пояснение
Свойство margin может быть задано с использованием одного, двух, трёх или четырёх значений.
👉 @frontendInterview
Свойство margin может быть задано с использованием одного, двух, трёх или четырёх значений.
👉 @frontendInterview
Что такое hoisting или "поднятие переменных"? Что произойдет при выполнении кода с картинки?
Интерпретатор JavaScript всегда перемещает («поднимает») объявления функций и переменных в начало области видимости (вверх текущего скрипта или функции). Код в вопросе аналогичен следующему:
👉 @frontendInterview
Интерпретатор JavaScript всегда перемещает («поднимает») объявления функций и переменных в начало области видимости (вверх текущего скрипта или функции). Код в вопросе аналогичен следующему:
myname = "global";В консоль будет напечатано:
function func() {
var myname;
console.log(myname); // "undefined"
myname = "local";
console.log(myname); // "local"
}
func();
undefined
local👉 @frontendInterview
Как добавлять элементы на HTML страницу динамически ?
Создание новых элементов осуществляется с помощью document.createElement(tagName);
После создания элемента его нужно присоединить к родительскому элементу с помощью .appendChild(node);
Пример:
👉 @frontendInterview
Создание новых элементов осуществляется с помощью document.createElement(tagName);
После создания элемента его нужно присоединить к родительскому элементу с помощью .appendChild(node);
Пример:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<noscript>Title</noscript>
<noscript type="text/javanoscript">
function addNode() {
var newP = document.createElement("p");
var textNode = document.createTextNode(" I'm a new text node");
newP.appendChild(textNode);
document.getElementById("target").appendChild(newP);
}
</noscript>
</head>
<body onload="addNode();">
<p id="target">sart here<p>
</body>
</html>👉 @frontendInterview
Какое CSS свойство не может быть установлено с помощью сокращенного свойства background?
Anonymous Quiz
7%
background-color
71%
background-blend-mode
8%
background-size
5%
background-repeat
9%
background-position
В чем разница между Object.getOwnPropertyNames() и Object.keys()
Object.getOwnPropertyNames() возвращает перечислимые и не перечислимые свойства из объекта или массива.
Пример:
// Array-like object
Пример:
// array like object
👉 @frontendInterview
Object.getOwnPropertyNames() возвращает перечислимые и не перечислимые свойства из объекта или массива.
Пример:
var arr = ["a", "b", "c"];
print(Object.getOwnPropertyNames(arr).sort()); // prints "0,1,2,length"
// Array-like object
var obj = { 0: "a", 1: "b", 2: "c"};
print(Object.getOwnPropertyNames(obj).sort()); // prints "0,1,2"
Object.keys() возвращает перечислимые свойства из объекта или массива.Пример:
var arr = ["a", "b", "c"];
alert(Object.keys(arr)); // will alert "0,1,2"
// array like object
var obj = { 0 : "a", 1 : "b", 2 : "c"};
alert(Object.keys(obj)); // will alert "0,1,2"👉 @frontendInterview
Пояснение
Обычные переменные в JavaScript нельзя удалить с помощью оператора delete. В строгом режиме попытка удалить переменную вызовет ошибку и не будет разрешена.
Оператор delete может удалять только свойства объекта. Свойства объекта "квалифицированы", если они конфигурируемы.
В отличие от общепринятого мнения, оператор delete не имеет ничего общего с непосредственным освобождением памяти.
Эта ошибка возникает только в коде строгого режима. В нестрогом коде операция просто возвращает false.
👉 @frontendInterview
Обычные переменные в JavaScript нельзя удалить с помощью оператора delete. В строгом режиме попытка удалить переменную вызовет ошибку и не будет разрешена.
Оператор delete может удалять только свойства объекта. Свойства объекта "квалифицированы", если они конфигурируемы.
В отличие от общепринятого мнения, оператор delete не имеет ничего общего с непосредственным освобождением памяти.
Эта ошибка возникает только в коде строгого режима. В нестрогом коде операция просто возвращает false.
👉 @frontendInterview
Грег Сидельников упорядочил свойства по основной категории (положение, размерность, макеты, CSS-анимация и т. д.) и визуализировал их работу. Вместо бесконечных томов документации – две с половиной сотни иллюстраций помогут вам разобраться во всех тонкостях работы CSS.
👉 @frontendInterview
👉 @frontendInterview
Регистр гласных
Создайте функцию, которая обработает строку и заменит регистр у всех гласных букв на противоположный
Пример:
👉 @frontendInterview
Создайте функцию, которая обработает строку и заменит регистр у всех гласных букв на противоположный
Пример:
C is alive! станет C Is AlIvE!👉 @frontendInterview
Непрерывное развитие API
Для реализации API необходимо провести большую работу. Чрезмерное планирование может стать пустой тратой сил, а его недостаток приводит к катастрофическим последствиям. В этой книге вы получите решения, которые позволят вам распределить необходимые ресурсы и достичь требуемого уровня эффективности за оптимальное время.
👉 @frontendInterview
Для реализации API необходимо провести большую работу. Чрезмерное планирование может стать пустой тратой сил, а его недостаток приводит к катастрофическим последствиям. В этой книге вы получите решения, которые позволят вам распределить необходимые ресурсы и достичь требуемого уровня эффективности за оптимальное время.
👉 @frontendInterview