Основы JS №1
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 1:
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией спецификации ECMAScript (стандарт ECMA-262).
1. ‘Hello ″world″ ‘
или
2. ″Hello ‘world’ ″
или
3. ‘Hello \’world\’ ‘ или ″Hello \″world\″ ″
Вариант строки Hello world правильно писать:
1) ″Hello world″
или
2) ‘Hello world’
Мы не присваиваем переменной name значение, а только объявляем.
По умолчанию в таком случае записывается undefined.
Правильный ответ //, это комментарий.
Комментарии используются для добавления подсказок, заметок, предложений или предупреждений. Они могут упростить чтение и понимание кода. Также они могут быть использованы для предотвращения выполнения кода (этот приём практикуется при отладке кода).
В JavaScript есть несколько способов указать комментарии в коде.
Первый способ // комментарий; в этом случае весь текст в строке после двойного слеша будет комментарием.
Второй способ — это /* */, можете использовать его в одной строке, либо сделать многострочный комментарий.
Имя переменной должно содержать только буквы, цифры или символы $, _, а также 1-ый символ не должен быть цифрой.
Поэтому правильным ответом в вопросе будет ‘да’.
Имена функций и переменных могут писаться в разных стилях. Наиболее известны следующие:
— camelCase (верблюжий). Слова, из которых состоит имя переменной, пишутся слитно, без пробелов, а каждое отдельное слово пишется с большой буквы. Самая первая буква имени остается строчной. Например, функцию для управления аккаунтом можно назвать accountManagement.
— PascalCase. Здесь тоже все слова объединяются и каждое новое пишется с заглавной буквы. Но, в отличие от camelCase, первая буква тоже заглавная. Имя той же функции для управления аккаунтом, написанное в PascalCase, будет AccountManagement.
— snake_case (змеиный). Все слова пишутся строчными буквами и разделяются символами подчеркивания. Имя нашей функции-примера в змеином регистре будет account_management.
— kebab-case. Этот стиль похож на змеиный регистр, только здесь слова разделяются не знаками подчеркивания, а дефисами. В kebab-case наша функция будет называться account-management.
const (константе) при объявлении обязательно нужно присваивать значение.
Для let и var присвоение можно сделать ниже по коду, ошибки не будет.
Значения свойств объекта можно изменять в не зависимости записан объект в let, var, или const.
Если же пытаться присвоить const user новый объект, то тем самым мы меняем ссылку на объект, что вызовет ошибку.
5 прибавится к массиву. Он будет выглядеть вот так:
[‘1’, ‘2’, ‘3’, ‘4’, 5]
Метод push() добавляет один или более элементов в конец массива и возвращает новую длину массива.
Метод push не является привязанным к типу; этот метод может быть вызван или применён к объектам, напоминающим массив. Метод опирается на свойство length для определения места вставки значений. Если свойство length не может быть преобразовано в число, будет использовать индекс 0. Сюда входит случай несуществования свойства length, в этом случае оно также будет создано.
Единственными родными массивоподобными объектами являются строки, хотя к ним он не может быть применён, поскольку строки являются неизменяемыми.
Список примитивных типов данных JavaScript:
— number (число)
— string (строка)
— boolean (логическое значение)
— null (специальное значение null)
— undefined (специальное значение undefined)
— symbol (символ, используется в особых случаях, появился в ES6)
Тип данных будет string (строка). В JS одинарные кавычки (′′) и двойные кавычки (″″) обозначают строки.
Правильным ответом будет «object».
null — примитивное значение, которое представляет собой намеренное отсутствие какого-либо значения объекта.
null — это специальное значение в JavaScript, которое представляет отсутствующий объект. Оператор строгого равенства определяет, является ли null переменной: variable === null. Оператор typoef полезен для определения типа переменной (число, строка, логическое значение). Однако typeof вводит в заблуждение в случае null: typeof null оценивается, как «object».
В данном случае правильный ответ undefined, так как 1111 — это число. Свойства length нет у чисел.
Если представить что string = ‘1111’, т.е. строке, то в таком случае в консоле бы вывелось 4.
Будет 5, потому что в скобках при сложении происходит приведение типов.
true изменяется на 1 при том написании кода в примере. В иных случаях возможен другой ответ.
Примеры:
let x = String([] + true + 2 + 2);
console.log(x); // Выведет true22
let x = String({} + true + 2 + 2);
console.log(x); // Выведет [object Object]true22
Особенность String() заключается в том, что он сначала вызывает toString(), а затем пытается использовать возвращаемое значение.
В свою очередь toString() позволяет преобразовать и объединить все элементы массива в одно строковое значение. Элементы массива будут разделены запятой.
Основы JS №2
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 2:
В переменную x будет записан результат вызова метода toString у объекта false. Метод toString возвращает строковое представление объекта, в данном случае это будет строка «false». Таким образом, в переменную x будет записана строка «false».
Код вызывает метод toPrecision у объекта number, который возвращает строку, представляющую число с указанной точностью. В данном случае точность указана равной 3, что означает, что результат будет содержать 3 знака, включая знаки после запятой. Поэтому в консоль будет выведено число 7.12.
Переменная n будет присвоена значение NaN (Not a Number). Это происходит потому, что функция Number преобразует переданный ей аргумент в число. В данном случае аргументом является строка «text», которую невозможно преобразовать в число, поэтому функция Number вернет значение NaN.
Оператор + в данном случае используется для преобразования строки ‘9’ в число. После этого к числу 9 прибавляется логическое значение true, которое также преобразуется в число (true равно 1, если ж было бы false, то оно равнялось бы нулю).
Итого переменной numb присваивается значение 10.
В переменную number будет записано число 177. Функция parseInt преобразует аргумент в целое число. В данном случае аргументом является число с плавающей точкой 177.894464, которое будет округлено до целого числа 177.
Функция parseFloat преобразует аргумент в число с плавающей точкой. В данном случае аргументом является число 28.90, которое будет неизменным после вызова функции parseFloat. Поэтому в консоль будет выведено число 28.9.
Важно: Надо не забывать что JS опускает нули в конце в дробных чисел, например, 30.100000 будет выглядеть как 30.1.
Оператор ‘ — ‘ (минус) выполняет операцию вычитания между числами. В данном случае операндами являются строки ‘9’ и ‘5’, которые будут преобразованы в числа перед выполнением операции. Поэтому в переменную number3 будет записано число 4.
let string = «I’m 97 years old» — правильный вариант, потому что одинарная кавычка не приводит к конфликту.
Строка начинается и заканчивается с двойных кавычек. Выходит что одинарная кавычка в слове I’m не разбивает строку.
Данный код будет работать корректно. Свойство length возвращает количество символов в строке. В данном случае строка «Hello world» содержит 11 символов, поэтому в переменную result будет записано число 11.
Функция concat служит для конкатенации (объединения) строк. Она принимает на вход неограниченное количество аргументов, которые будут объединены в одну строку.
В данном коде функция concat вызывается у объекта str1 и передается два аргумента: строка » » (пробел) и объект str2. Функция concat сначала объединяет строку » » с объектом str1, а затем объединяет результат с объектом str2. В итоге в переменную result будет записана строка «Hello world».
Для того, чтобы сделать все буквы в строке маленькими, можно использовать свойство toLowerCase у объекта name. Свойство toLowerCase возвращает строку, в которой все символы приведены к нижнему регистру.
Функция indexOf выполняет поиск указанного символа в строке и возвращает его индекс (позицию) в строке. Если символ не найден, то функция indexOf вернет значение -1.
В примере в вопросе символ ‘y’ отсутствует в строке ‘world’, поэтому будет правильный ответ -1.
Правильным вариантом будет где в console.log() указано string.charAt(string.length -1).
Свойство length возвращает количество символов в строке, а функция charAt возвращает символ по указанному индексу.
В данном случае строка string содержит 17 символов, так как string.length вернет значение 17. Последний символ в строке имеет индекс 16, так как индексация символов в строке начинается с нуля. Поэтому string.charAt(string.length -1) вернет символ с индексом 16, что соответствует последнему символу в строке.
В итоге в консоль будет выведен символ «g».
Правильным ответом будет let result = «I`m a long string».slice(-5);.
Данный код извлекает часть строки «I’m a long string» с помощью метода slice.
Метод slice принимает на вход два параметра: начальный индекс и конечный индекс символов, которые нужно извлечь. Если указать отрицательное значение для индекса, то индекс будет рассчитываться с конца строки. Например, -1 соответствует последнему символу в строке, -2 соответствует предпоследнему символу и т.д.
Правильным вариантом будет let str = ‘Hello world’.replace(‘world’, ‘Vasia’);.
В варианте let str = ‘Hello world’.replace(world, Vasia); вместо строк ‘world’ и ‘Vasia’ используются неопределенные переменные world и Vasia. В таком случае код вызовет ошибку, так как переменные world и Vasia не были определены ранее.
В варианте let str = ‘Hello world’.replace(«Vasia», «world»); аргументы метода replace перепутаны местами.
Основы JS №3
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 3:
Ответ console.log(«green red white gray».includes(‘black’));.
Правильно писать метод именно includes().
В итоге будет выводиться в консоль «false», так как в строке «green red white gray» нет подстроки «black».
Мы объявляем переменную string со значением результата вычисления выражения 20 + 50, которое даёт результат 70.
Затем мы используем свойство innerHTML для того, чтобы вывести в HTML-код страницы содержимое переменной string.
В результате, в конец тела HTML страницы будет добавлен текст » 70 «, то есть результат вычисления.
Функция prompt будет вызвана дважды.
Первый вызов функции отобразит диалоговое окно с сообщением » 1? «, а второй вызов функции отобразит диалоговое окно с сообщением » 2? » на странице.
Каждый раз когда функция вызывается, она останавливает выполнение скрипта и ждет ввода пользователя до продолжения.
Она будет предлагать пользователю ввести какое-то значение или сообщение, это произойдет дважды, один раз для каждого вызова функции.
Значение переменной result будет false, потому что x не равно y.
Оператор сравнения (==) сравнивает значение левого операнда со значением правого операнда и возвращает true, если они равны, иначе false.
В примере в вопросе x имеет значение 9, а y имеет значение 10, поэтому сравнение возвращает false.
Оператор строгого сравнения (===) сравнивает значение левого операнда и значение правого операнда, а также тип данных. Если оба значения равны и имеют одинаковый тип данных, то оператор возвращает true.
В вопросе значение x и y одинаковые, но разные типы (число и строка соответственно), поэтому результат все равно будет false.
Ответ будет ошибка, а именно Uncaught SyntaxError: Invalid left-hand side in assignment
Ошибка «Недопустимая левая часть в присваивании» возникает, когда у нас есть синтаксическая ошибка в нашем коде JavaScript. Наиболее распространенной причиной является использование одного знака равенства вместо двойного или тройного равенства в условном выражении.
В нашем случае ошибка в ‘y = 3’.
Код console.log(true == 1); выполняет сравнение значения true со значением 1 с помощью оператора сравнения (==). В JavaScript, оператор == сравнивает значения без учета типов данных. Таким образом, true будет приведено к числу 1, и сравнение будет иметь значение true. В результате это выражение выведет «true» в консоль.
Код в вопросе выполняет сравнение значения false со значением «0» с помощью оператора сравнения (==). В JavaScript, оператор == сравнивает значения без учета типов данных. Таким образом, false будет приведено к строке «0», и таким образом мы получаем true.
Важно что в примере выполняется сравнение с помощью строгого оператора равенства ===.
null и undefined это специальные значения языка JavaScript, которые используются для обозначения неизвестности или отсутствия значения. Они не являются эквивалентными, поэтому сравнение null и undefined с помощью строгого оператора равенства даст результат false.
NaN (Not-a-Number) — это специальное значение JavaScript, которое используется для представления ошибки в математических операциях. Оно не равно никакому другому значению, в том числе и само себе. Поэтому, сравнение двух значений NaN с помощью оператора сравнения (==) всегда дает результат false.
Сначала мы объявляем константу a со значением 5. Затем мы объявляем константу x и присваиваем ей результат выражения 2 — a > 3.
В этом выражении сначала выполняется операция вычитания: 2 — 5 (вместо a подставляется 5), которая даёт значение -3.
Затем сравнивается это значение с числом 3 с помощью оператора «больше» (>). Поскольку -3 меньше чем 3, то выражение 2 — a > 3 имеет значение false, и это значение присваивается переменной x.
В итоге console.log(x) выведет false в консоль.
Объявляются две переменные str1 и str2, но мы не присваиваем им какое-либо значение, поэтому они инициализируются со значением undefined.
Затем вызывается функция console.log(str1, str2), которая выводит значения двух переменных через пробел. Так как никаких значений не было присвоено переменным, то они инициализируются как undefined, поэтому в консоли будет выведена строка «undefined undefined».
Мы объявляем две переменные numb1 и numb2.
Затем мы присваиваем им значения с помощью оператора присваивания. В первой строке присваивания numb1 = numb2 = 10 — 8 + 1, значение выражения 10 — 8 + 1 будет равно 3. Данное присвоение работает справа на лево, сначала вычисляется значение выражения, затем это значение присваивается переменной numb2, и потом присваивается переменной numb1. Поэтому numb1 и numb2 будут иметь одинаковое значение 3.
В конце мы вызываем функцию console.log(numb1, numb2), которая выводит значения двух переменных через пробел, в результате в консоли будет выведена строка «3 3».
Правильный ответ 9.
В примере в console.log(b++) используется оператор «пост-инкремент» (++), который добавляет 1 к значению переменной после ее использования.
В данном случае получаем сначала выполнение console.log, выводится значение переменной b, то есть 9 и после этого только значение b увеличивается на 1.
Правильный ответ:
let numb = 2;
numb = Math.pow(numb, 3);
Метод Math.pow(base, exponent) возвращает результат возведения числа base в степень exponent.
В нашем случае base является 2, а степенью 3, поэтому в numb запишется 8.
Основы JS №4
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 4:
console.log(Boolean(0)); — Ложно так как 0 имеет значение false в javascript.
console.log(Boolean(undefined)); — Ложно так как undefined имеет значение false.
console.log(Boolean(NaN)); — Ложно так как NaN (Not-a-Number) имеет значение false.
console.log(Boolean(′′)); — Ложно так как пустая строка имеет значение false.
console.log(Boolean(null)); — Ложно так как null имеет значение false в js.
Значения true выдают:
console.log(Boolean(‘ ‘));
console.log(Boolean([]));
console.log(Boolean({}));
В switch-case конструкции, если значение переменной соответствует какому-то из case, то выполняется код в этом case и все последующие case до первого break (или до конца конструкции switch-case).
В примере, переменная string равна Yes , поэтому выполняется код в case ‘Yes’ и case ‘No’ из-за того, что break указан только во втором case.
Неправильным вариантом является:
console.log(if (x) x = 9);
неверен синтаксис, if не является функцией и не может быть использован в таком виде, чтобы вызвать его результат.
Правильный код может быть таким:
let x = 2;
if (x) {
x = 9;
}
console.log(x);
if ставится в начало кода с условием и заключается в фигурные скобки.
Оставшиеся варианты в вопросе являются верными.
В консоль выведется No.
Это происходит потому что в примере используется тернарный оператор. Он проверяет условие (numb >= 10), если оно является истинным, то возвращает значение переменной string равное Yes, иначе возвращает значение No.
Условие не выполняется т.к. значение переменной numb равно 9, а 9 не больше и не равно 10 — соответственно возвращается значение No.
Переменные item и color называются параметрами функции.
Параметр функции — это переменная, которая используется в функции и указывается при объявлении функции в круглых скобках (если параметров несколько, то они указываются через запятую).
Значения laptop и red называются аргументами при вызове функции.
Аргумент функции — это значение, которое передаётся в функцию (указывается в скобках) при её вызове.
Ответ — невозможен.
В коде функция output объявлена как const, которая означает, что она объявляется и инициализируется одновременно. При этом переменная с этим именем не может быть изменена позже. Таким образом, функция не существует в момент вызова console.log(output(‘Hello’)), поэтому код не сможет выполниться и выдаст ошибку.
В данном случае правильно сначала объявить функцию и только потом вызывать её.
В вопросе исползуются шаблонные строки, котоые объявляются с помощью обратных кавычек (` `).
Шаблонные строки — это ещё один способ создания строк, наравне с одинарными или двойными кавычками.
Шаблонная строка может быть многострочной, все переносы строк в ней будут сохранены. В шаблонной строке с помощью синтаксиса ${ } можно использовать любые выражения JavaScript. Любой нестроковый результат (например, объект) будет приведён к строке.
Рассмотрим сам пример:
В теле функции создается переменная newNumber которая инициализируется строкой, состоящей из значений numb1 и numb2, которые передаются в функцию как аргументы, в данном случае это 1 и 3.
Затем функция использует return для возврата этой строки как результат вызова функции.
В итоге получаем вывод в консоль строки «1 + 3».
В коде инициализируется массив arr со значениями [«car», «auto»]. Затем к массиву добавляется элемент с индексом 3 и значением «phone». Поскольку массив arr изначально состоит из 2 элементов, это означает, что индексы 0 и 1 заняты, а индекс 2 еще не задан, поэтому значение индекса 2 будет undefined.
Таким образом, в консоле будет выведен массив [«car», «auto», undefined, «phone»].
Array.isArray() метод проверяет, является ли переданное значение массивом. Возвращает true если значение является массивом и false если не является.
В вопросе первая функция Array.isArray(arr) возвращает true, потому что arr является массивом.
Вторая функция Array.isArray(ob) возвращает false, потому что ob является объектом и не является массивом.
В итоге получаем в консоле:
true
false
В вопросе используются следующие методы массива:
arr.pop() удаляет последний элемент массива и возвращает его значение, таким образом, из массива удаляется 9
arr.shift() удаляет первый элемент массива и возвращает его значение, таким образом, из массива удаляется 1
arr.push(1, 10) добавляет два элемента 1 и 10 в конец массива
arr.unshift(9,0) добавляет два элемента 9 и 0 в начало массива
В результате массив будет выглядеть так: [9, 0, 2, 3, 4, 5, 6, 7, 8, 1, 10].
В массив arr будет записан массив [5, 4, 3, 2, 1], так как метод arr.reverse() меняет порядок элементов массива на обратный.
В массив result будет записан массив [5, 4, 3], так как метод arr.slice(0, 3) возвращает часть массива начиная с элемента с индексом 0 и заканчивая на элементе с индексом 2.
Метод concat() возвращает новый массив, состоящий из массива, на котором он был вызван, соединённого с другими массивами и/или значениями, переданными в качестве аргументов.
Метод splice() позволяет изменить содержимое массива за счёт удаления существующих элементов, и/или добавления новых элементов в массив.
Рассмотрим последние строки кода в вопросе:
let result = arr2.concat(arr1); // переменная result будет равна [1, 2, 3, 4, 5, 6]
result.splice(1); // удаляются все элементы массива кроме самого первого
console.log(result); // Выводит [1]
Код выведет 10.
Используется стрелочная функцией и тернарный оператор. При передаче значения 5 как num1, условие (num1 > 10) возвращает false, поэтому далее высчитывается num1 + num2, результатом является сумма двух 5.
Оператор [] является динамическим свойством доступа, который позволяет обращаться к свойствам объекта с использованием имени свойства как строки.
В примере, конкатенация строк идет между first и str. А переменая str равна name, что дает строку firstname.
В итоге выведется Tom, потому что в объекте существует свойство firstname и значение этого свойства равно Tom.
Основы JS №5
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 5:
При данном написании кода в консоле выведется undefined, потому что свойство question не существует в объекте newObj.
Вызов prompt не влияет на вывод, даже если в нем было записано name, после promt просто сохраняется строка в переменной question.
Tom мог вывестить в случае, если бы в коде в конце было указано console.log(newObj[question]);, question именно в квадратных скобках, чтобы сработала подстановка, и в promt ответили name.
prompt возвращает значение, которое пользователь вводит в диалоговом окне.
В нашем случае, пользователь вводит friend, что подставляется вместо question в console.log(newObj[question]);
Свойсто friend есть в объекте, поэтому в консоль выведется Jerry.
newObj.aimal2 = ‘mouse’; // добавляет новое свойство с именем animal2 и значением mouse.
newObj[item] = ‘cat’; // добавляет новое свойство с именем animal1 и значением cat, потому что item = ‘animal1’.
В итоге в консоле выведется объект newObj с добавленными новыми свойствами animal2 со значением mouse и animal1 со значением cat.
Объект будет выглядеть так: {name: «Tom», friend: «Jerry», animal2: «mouse», animal1: «cat»}.
console.log(newObj.friend.length); // используется свойство length для получения количества элементов в массиве, который является свойством friend объекта newObj. Получаем 2.
console.log(newObj.friend[0]); // используется нулевой индекс для получения первого элемента массива, который равен Tom.
Правильный ответ console.log(newObj[‘bottle’](10));
newObj[‘bottle’] вызывает функцию bottle в объекте newObj и передаёт ей аргумент 10.
А далее функция bottle возвращает свой аргумент без изменений, поэтому в консоль выведется число 10.
Код в примере выведет в консоль сам объект newObj, поскольку в функции question используется слово this, которое ссылается на объект, в контексте которого вызвана функция.
В итоге получаем {water: ‘Yes’, bottle: 10, question: ƒ}.
newObj.question(); // функции question() добавляет свойства box к объекту newObj со значением 2.
Далее в консоль выводится значение свойства box равной 2.
В теле функции question используется синтаксис шаблонной строки для вставки значений свойств самого объекта в возвращаемую строку.
Так же используется тернарный оператор ( ? : ) для вычисления значения после слова are, если friend равен 2 то возвращается пустая строка, иначе возвращается not.
В итоге получаем что question вернет строку «Tom and Jerry are friends.».
Свойство box не определено в объекте newObj.
Так как newObj.question(); закомментирован, метод question не вызывается, соответственно не добавляется свойство box в объект. Вследствие чего не может быть найдено свойство box в объекте.
В итоге получаем что console.log(newObj.box); выводит undefined.
Правильный ответ [ «water», «bottle», undefined ].
В цикле for перебирается 3 элемента (нулевой, первый и второй), а в массиве arr только 2 элемента, поэтому в третий элемент в arr2 записывается undefined.
В цикле for происходит перебор элементов массива arr и для каждого элемента вычисляется тип данных с помощью функции typeof, а также записывается в массив arr3.
В итоге массив arr3 будет выглядеть [«string», «number», «object»].
Цикл for начинается с индекса «arr.length — 1» (последний элемент массива) и заканчивается на индексе 0 (первый элемент массива). В каждом цикле элемент массива arr добавляется в начало массива numb с помощью метода unshift().
Получаем что массив numb будет выглядеть точно также как и arr — [1, 2, 3, 4, 5].
Цикл не будет бесконечным.
Функция Math.random() возвращает случайное число между 0 и 1.
Функция Math.floor() округляет цифру до ближайшего меньшего целого числа.
Умножение на 5 и прибавление 1 позволяет получить целое число от 1 до 5 в данном примере кода.
При генерации случайного числа происходит сравнение с единицей, как только случайное число станет равно 1 цикл прекращается.
Функция question() возвращает среднее арифметическое элементов входного массива arr. Она это делает, сначала инициализируя переменную sum нулём, затем итерируя каждый элемент массива arr с помощью цикла for, добавляя значение каждого элемента к запущенной сумме.
После цикла функция возвращает значение sum, разделённое на длину массива, которое является средним значением элементов массива.
В итоге в консоль будет выведено число 5, что является средним арифметическим значением элементов массива [5,5,5].
Правильный ответ ‘0 => auto 1 => home 2 => cat ‘.
В методе forEach используется callback-функция, которая принимает в качестве аргументов текущий элемент (item) и его индекс (index).
Далее строка str конкатенируется с каждым элементом массива, используя шаблонные строки.
В итоге получаем вывод в консоле строки, которая состоит из индекса и значения каждого элемента массива arr.
Основы JS №6
Вопрос
Ваш ответ:
Правильный ответ:
Ваш ответ
Объяснения по тесту 6:
Функция sum возвращает сумму двух аргументов a и b. В данном случае, она вызывается три раза с различными аргументами (30, 30), (20, 20) и (60, 40).
В первых двух вызовах функция возвращает числа 60 и 40, а в третьем вызове слаживает уже их.
В итоге получаем сумму 100.
Функция sum принимает два аргумента a и b, и возвращает их сумму. В момент вызова функции sum в качестве аргументов ничего не передано. Переменные a и b не инициализированы и их значения undefined, поэтому результатом выполнения a + b будет NaN (Not a Number).
В данном примере мы получаем что переменная arr1 и arr2 ссылаются на один и тот же массив в памяти.
При const arr2 = arr1; происходит присвоение по ссылке.
Поэтому console.log() выведет true.
NaN это специальное значение (не число), которое представляет отсутствие допустимого числового значения.
В JS оператор + может использоваться и для сложения, и для приведения типов. Когда используется перед не-числовым значением, он пытается его преобразовать в число.
В вопросе оператор + пытается преобразовать строку ‘5f’ в число, но строка содержит нечисловой символ ‘f’, из-за которого невозможно преобразование. Результатом будет NaN.
Правильный ответ console.log(person1[‘complex key’]);.
В JS к свойствам объекта можно обращаться с помощью точки или скобок.
Скобки позволяют получить доступ к свойствам, имеющим пробелы или другие специальные символы в имени, что недопустимо при использовании точки.
Код в вопросе выведет 180, потому что он получает доступ к значению свойства «complex key» объекта person1.
Метод forEach используется для итерации по массиву и вызова функции для каждого элемента массива. Функция, переданная в forEach, называется функцией обратного вызова.
В вопросе метод forEach ожидает функцию обратного вызова в качестве его аргумента, но в данном случае функция print вызывается немедленно с помощью скобок () после нее, что в свою очередь вызывает ошибку.
for (let item in person) { console.log(item) }; является правильным способом итерировать объект и выводить его свойства в консоль.
Цикл for…in проходит через перечисляемые свойства объекта. Он проходит по каждому отдельному элементу.
Синтаксис:
for (variable in object) {…
}
variable
Другое (очередное) имя свойства назначается переменной на каждой итерации.
object
Объект, по чьим свойствам мы проходим.
Чтобы останавливать функцию setInterval() используют метод clearInterval().
В вопросе нужно вызвать clearInterval(timer), где timer — это переменная, которую мы определили для хранения возвращаемого значения setInterval().
Остановить функцию setTimeout() можно используя метод clearTimeout().
В примере мы должны вызвать clearTimeout(timer2), где timer2 — это переменная, которая хранит возвращаемое значение setTimeout().
setInterval() и setTimeout() — это два разных метода JS, которые используются для запуска функции после определенного интервала времени.
setTimeout() выполняет функцию один раз через указанный интервал времени. К примеру, если вы вызовите setTimeout(myFunction, 1000), то функция myFunction будет выполнена через 1 секунду после вызова функции.
setInterval() же выполняет функцию многократно через указанный интервал времени. Например, если мы вызовем setInterval(myFunction, 1000), то функция myFunction будет выполняться каждую секунду после вызова функции.
Правильный ответ 1.
В коде используется тернарный оператор для вычисления выражения time == 8, которое является ложным, так как переменная time имеет значение 20.
Когда выражение ложно, данный код выполняет функцию outTime2(), которая выводит число 1.
В JavaScript метод map() позволяет вызвать переданную функцию один раз для каждого элемента массива, формируя новый массив из результатов вызова этой функции.
В примере в функции обратного вызова к каждому элементу прибавляется единица. В итоге получаем новый массив [2, 3, 4, 5].
В JavaScript метод filter() позволяет создать новый массив, элементы которого соответствуют условию заданному в пререданной функции (для которых функция возвращает true). Элементы массива, которые не соответствуют условию в переданной функции (для которых функция возвращает false) пропускаются и не включаются в новый массив отфильтрованных элементов.
В примере в переменную arr2 будет записан массив [«one», «two»], потому что при таком написании кода каждый элемент при проверке будет возвращать true.
Также в данном случае arr и arr2 разные массивы, они не равны друг другу.
Метод typeof возвращает тип данных переменной.
Тип переменной d будет string (строка) при выводе в консоль, потому что мы используем шаблонную строку («) для преобразования числа 55 в строку.
Правильный ответ const pers = new Person(«Tom», 40);. Обязательно нужно указывать new.
Код создает класс Person с конструктором, который принимает два аргумента: name и age. Внутри конструктора создаются свойства this.name и this.age и присваиваются значения, переданные в качестве аргументов.
После, создается новый экземпляр класса Person с именем Tom и возрастом 40, и присваивается ссылка на него переменной pers.