Программирование без дураков
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview
Хотите научиться программировать "less wrong"? Тогда эта книга - для вас. Ведь программирование - это во многом коммуникация. Стиль программирования, именование, комментирование, работа с чужим кодом - зачастую соглашения складываются именно там, где строгая регламентация на уровне языка программирования отсутствует.
👉 @frontendInterview
Help the Fruit Guy
Вам дан массив строк, представляющий собой набор фруктов - свежих и испорченных. Для испорченных фруктов добавляется приставка rotten.
Создайте функцию, которая заменит испорченные фрукты свежими.
Пример:
Дано -
👉 @frontendInterview
Вам дан массив строк, представляющий собой набор фруктов - свежих и испорченных. Для испорченных фруктов добавляется приставка rotten.
Создайте функцию, которая заменит испорченные фрукты свежими.
Пример:
Дано -
["apple","rottenBanana","apple"]
Результат - ["apple","banana","apple"]👉 @frontendInterview
Как передаются параметры в функцию: по ссылке или по значению?
Передача параметров по значению
Строки, числа, логические значения передаются в функцию по значению. Иными словами при передаче значения в функцию, эта функция получает копию данного значения. Рассмотрим, что это значит в практическом плане:
Передача по ссылке
Объекты и массивы передаются по ссылке. То есть функция получает сам объект или массив, а не их копию.
👉 @frontendInterview
Передача параметров по значению
Строки, числа, логические значения передаются в функцию по значению. Иными словами при передаче значения в функцию, эта функция получает копию данного значения. Рассмотрим, что это значит в практическом плане:
function change(x){
x = 2 * x;
console.log("x in change:", x);
}
var n = 10;
console.log("n before change:", n); // n before change: 10
change(n); // x in change: 20
console.log("n after change:", n); // n after change: 10
Функция change получает некоторое число и увеличивает его в два раза. При вызове функции change ей передается число n. Однако после вызова функции мы видим, что число n не изменилось, хотя в самой функции произошло увеличение значения параметра. Потому что при вызове функция change получает копию значения переменной n. И любые изменения с этой копией никак не затрагивают саму переменную n.Передача по ссылке
Объекты и массивы передаются по ссылке. То есть функция получает сам объект или массив, а не их копию.
function change(user){
user.name = "Tom";
}
var bob ={
name: "Bob"
};
console.log("before change:", bob.name); // Bob
change(bob);
console.log("after change:", bob.name); // Tom
В данном случае функция change получает объект и меняет его свойство name. В итоге мы увидим, что после вызова функции изменился оригинальный объект bob, который передавался в функцию.👉 @frontendInterview
👍2
Что такое псевдомассив arguments?
Объект arguments это локальная переменная, доступная внутри любой (нестрелочной) функции. Объект arguments позволяет ссылаться на аргументы функции внутри неё. Он состоит из переданных в функцию аргументов, индексация начинается с 0. Например, если в функцию было передано 3 аргумента, обратиться к ним можно следующим образом:
👉 @frontendInterview
Объект arguments это локальная переменная, доступная внутри любой (нестрелочной) функции. Объект arguments позволяет ссылаться на аргументы функции внутри неё. Он состоит из переданных в функцию аргументов, индексация начинается с 0. Например, если в функцию было передано 3 аргумента, обратиться к ним можно следующим образом:
arguments[1]Аргументам может быть присвоено значение:
arguments[2]
arguments[1] = 'new value';👉 @frontendInterview
"Javanoscript developer. Professional" - это хардкорный онлайн-курс для web-разработчиков по продвинутым возможностям JS и его фреймворков.
Справитесь ли вы с уровнем курса? Покажет вступительный тест.
📍Пройдите тестирование, чтобы:
● оценить свои навыки
● получить доступ к демо-занятиям курса
● занять место по специальной цене
● получить доступ в закрытое сообщество JS-разработчиков
👉 Пройти полное тестирование: https://clck.ru/uKCcE
Справитесь ли вы с уровнем курса? Покажет вступительный тест.
📍Пройдите тестирование, чтобы:
● оценить свои навыки
● получить доступ к демо-занятиям курса
● занять место по специальной цене
● получить доступ в закрытое сообщество JS-разработчиков
👉 Пройти полное тестирование: https://clck.ru/uKCcE
Для чего используется оператор !! (двойного отрицания)?
Это не новый оператор, это всего лишь два оператора !, просто они записаны подряд. Что это даёт? Тут тоже всё довольно просто. Допустим у вас есть функция, которая возвращает какой-то результат: строку, число, объект и т.д. А вам необходимо получить от этой функции true или false. Вот два записанных подряд оператора ! и делают именно это. Если функция вернёт строку, отличное от 0 число, объект, массив — в общем любое правдивое значение, то выражение !! превратит его в true, в противном случае вы получите false.
👉 @frontendInterview
Это не новый оператор, это всего лишь два оператора !, просто они записаны подряд. Что это даёт? Тут тоже всё довольно просто. Допустим у вас есть функция, которая возвращает какой-то результат: строку, число, объект и т.д. А вам необходимо получить от этой функции true или false. Вот два записанных подряд оператора ! и делают именно это. Если функция вернёт строку, отличное от 0 число, объект, массив — в общем любое правдивое значение, то выражение !! превратит его в true, в противном случае вы получите false.
👉 @frontendInterview
Какое значение примет result?
Anonymous Quiz
2%
"null"
52%
"function"
12%
"number"
20%
выведется ошибка
14%
"undefined"
A Smarter Way to Learn JavaScript: The New Tech-Assisted Approach that Requires Half the Effort
Автор книги Майкл Майерс утверждает, что понимание и удержание информации — две главные проблемы при изучении JS. Исходя из этого, формат учебника построен на постоянном закреплении теоретических знаний через решение повседневных задач. Поэтому книгу Майерса можно найти на полках как новичков, так и профи. При небольшом объёме учебника автору удалось соблюсти баланс между фундаментальными понятиями и практической части.
👉 @frontendInterview
Автор книги Майкл Майерс утверждает, что понимание и удержание информации — две главные проблемы при изучении JS. Исходя из этого, формат учебника построен на постоянном закреплении теоретических знаний через решение повседневных задач. Поэтому книгу Майерса можно найти на полках как новичков, так и профи. При небольшом объёме учебника автору удалось соблюсти баланс между фундаментальными понятиями и практической части.
👉 @frontendInterview
Get key/value pairs as arrays
Создайте функцию, которая принимает объект и возвращает ключи и значения этого объекта в двух отдельных массивах.
Пример:
👉 @frontendInterview
Создайте функцию, которая принимает объект и возвращает ключи и значения этого объекта в двух отдельных массивах.
Пример:
keysAndValues({a: 1, b: 2, c: 3})
// should return [['a', 'b', 'c'], [1, 2, 3]]👉 @frontendInterview