Какое значение будет у свойства length массива a и почему:
Когда вы расширяете массив, изменяя его свойство length, реальное количество элементов в массиве увеличивается; например, если вы установите свойство length в 3, когда оно равно 2, массив будет из 3 элементов, где значение третьего элемента будет равно undefined
Соответственно в нашем случае добавляя десятый элемент массива, мы изменяем его свойство length. Таким образом, делаем length = 11, А элементы от 3 до 9 будут равны undefined.
const a = [1, 2, 3];length будет равен 11
a[10] = 4;
Когда вы расширяете массив, изменяя его свойство length, реальное количество элементов в массиве увеличивается; например, если вы установите свойство length в 3, когда оно равно 2, массив будет из 3 элементов, где значение третьего элемента будет равно undefined
Соответственно в нашем случае добавляя десятый элемент массива, мы изменяем его свойство length. Таким образом, делаем length = 11, А элементы от 3 до 9 будут равны undefined.
Почему 0.1 + 0.2 === 0.3 — это false?
Действительно, в JavaScript 0.1 + 0.2 на самом деле равно 0.30000000000000004. Дело в том, что все числа в языке (даже целые) представлены в формате с плавающей запятой (float). В двоичной системе счисления эти числа — бесконечные дроби. Для их хранения выделяется ограниченный объем памяти, поэтому возникают подобные неточности.
Действительно, в JavaScript 0.1 + 0.2 на самом деле равно 0.30000000000000004. Дело в том, что все числа в языке (даже целые) представлены в формате с плавающей запятой (float). В двоичной системе счисления эти числа — бесконечные дроби. Для их хранения выделяется ограниченный объем памяти, поэтому возникают подобные неточности.
Что такое Полифиллы и шимы (shim)
Шим — это любой фрагмент кода, который перехватывает обращение к API и добавляет уровень абстракции в приложение. Шимы существуют не только в вебе.
Полифилл — это шим для веба и браузерных API — специальный код (или плагин), который позволяет добавить некоторую функциональность в среду, которая эту функциональность по умолчанию не поддерживает (например, добавить новые функции JS в старые браузеры). Полифиллы не являются частью стандарта HTML5.
Шим — это любой фрагмент кода, который перехватывает обращение к API и добавляет уровень абстракции в приложение. Шимы существуют не только в вебе.
Полифилл — это шим для веба и браузерных API — специальный код (или плагин), который позволяет добавить некоторую функциональность в среду, которая эту функциональность по умолчанию не поддерживает (например, добавить новые функции JS в старые браузеры). Полифиллы не являются частью стандарта HTML5.
Сила JavaScript. 68 способов эффективного использования JS
Эта книга, написанная Дэвидом Херманом, предназначена для тех, у кого уже есть базовое понимание JavaScript.
Книга «Effective JavaScript» содержит советы эксперта по JavaScript. Она написана для разработчиков с уровнем знаний от среднего и выше.
Прочтя эту книгу, вы научитесь хорошему стилю, узнаете, с чего начинать проект и как управлять им на протяжении всего периода разработки.
Эта книга, написанная Дэвидом Херманом, предназначена для тех, у кого уже есть базовое понимание JavaScript.
Книга «Effective JavaScript» содержит советы эксперта по JavaScript. Она написана для разработчиков с уровнем знаний от среднего и выше.
Прочтя эту книгу, вы научитесь хорошему стилю, узнаете, с чего начинать проект и как управлять им на протяжении всего периода разработки.
Что делает, как и когда использовать метод reduce?
Метод
Он применяет функцию callback по очереди к каждому элементу массива слева направо, сохраняя при этом промежуточный результат.
Аргументы функции
previousValue – последний результат вызова функции, он же «промежуточный результат».
currentItem – текущий элемент массива, элементы перебираются по очереди слева-направо.
index – номер текущего элемента.
arr – обрабатываемый массив.
Кроме callback, методу можно передать «начальное значение» – аргумент initialValue. Если он есть, то на первом вызове значение previousValue будет равно initialValue, а если у reduce нет второго аргумента, то оно равно первому элементу массива, а перебор начинается со второго.
// промежуточный результат передавать первым аргументом далее
current - текущее значение
0 - initialvalue
Метод
arr.reduce(callback[, initialValue]) используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.Он применяет функцию callback по очереди к каждому элементу массива слева направо, сохраняя при этом промежуточный результат.
Аргументы функции
callback(previousValue, currentItem, index, arr):previousValue – последний результат вызова функции, он же «промежуточный результат».
currentItem – текущий элемент массива, элементы перебираются по очереди слева-направо.
index – номер текущего элемента.
arr – обрабатываемый массив.
Кроме callback, методу можно передать «начальное значение» – аргумент initialValue. Если он есть, то на первом вызове значение previousValue будет равно initialValue, а если у reduce нет второго аргумента, то оно равно первому элементу массива, а перебор начинается со второго.
var arr = [1, 2, 3, 4, 5]// для каждого элемента массива запустить функцию,
// промежуточный результат передавать первым аргументом далее
var result = arr.reduce(function(sum, current) {
return sum + current;
}, 0);
alert( result ); // 15
sum - предыдущий результатcurrent - текущее значение
0 - initialvalue
Что такое автоматизированное тестирование, и в чём отличие от ручного тестирования?
Автоматизация тестирования приложений основана на написании кода. Методика автоматизированного тестирования позволяет создать ожидаемый сценарий, а затем сравнить его с реальным и указать расхождения.
Автоматизация наиболее применима в сложных приложениях с большой функциональной частью. Особой популярностью пользуется автоматизация тестирования труднодоступных мест приложения, валидационных форм, базовых операций, часто используемой функциональности.
Ручное тестирование – это прямое взаимодействие QA-инженера и приложения. В его процессе можно получить обратную связь о продукте, что невозможно, если использовать автоматизированное тестирование.
Проведение автоматизации тестирования позволяет получить более точный результат. Ручные проверки – это более универсальный вариант, который рассчитан практически на любое приложение.
Автоматизация тестирования приложений основана на написании кода. Методика автоматизированного тестирования позволяет создать ожидаемый сценарий, а затем сравнить его с реальным и указать расхождения.
Автоматизация наиболее применима в сложных приложениях с большой функциональной частью. Особой популярностью пользуется автоматизация тестирования труднодоступных мест приложения, валидационных форм, базовых операций, часто используемой функциональности.
Ручное тестирование – это прямое взаимодействие QA-инженера и приложения. В его процессе можно получить обратную связь о продукте, что невозможно, если использовать автоматизированное тестирование.
Проведение автоматизации тестирования позволяет получить более точный результат. Ручные проверки – это более универсальный вариант, который рассчитан практически на любое приложение.