Чем отличаются const, var и let в JavaScript?

Как вы наверняка знаете, var, let и const используются для объявления переменных. Ранее мы с вами изучили все три способа и рассмотрели разницу между ними. В этой статье я хотел бы подытожить сказанное, так как об этом очень часто спрашивают новичков на собеседовании.

Итак, ключевые отличия между const, var и let это: возможность отложенного определения значения переменной, возможность переопределения значения, повторное объявление, соблюдение/игнорирование блочной области видимости, hoisting. А теперь подробнее.

Читать далее «Чем отличаются const, var и let в JavaScript?»

Решаем задачку «Flipping an Image»

Условие

Дана матрица А (условно — изображение), необходимо отразить изображение по горизонтали, а после его инвертировать (имеется в виду преобразования вложенных массивов). Например, отразив по горизонтали массив [1, 1, 0], получим [0, 1, 1], а после инверсии (замена каждого значения на противоположное) — [1, 0, 0]. Метод должен вернуть преобразованный массив (изображение).

Ограничения:

1 <= A.length = A[0].length <= 20

0 <= A[i][j] <= 1

Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.
To flip an image horizontally means that each row of the image is reversed. For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].
To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].
Читать далее «Решаем задачку «Flipping an Image»»

Решаем задачку «Valid Parentheses»

Условие

Дана строка, которая состоит из круглых, фигурных, квадратных скобок. Определить является ли строка правильной. Строка правильная, если:

1) Открытая скобка закрыта скобкой такого же типа.

2) Все скобки закрыты в верном порядке.

Ограничения:

1) 1 <= s.length <= 104

2) В строке встречаются только следующие скобки: ‘()[]{}’.

Given a string s containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘ and ‘]’, determine if the input string is valid.
An input string is valid if:
1) Open brackets must be closed by the same type of brackets.
2) Open brackets must be closed in the correct order.
Читать далее «Решаем задачку «Valid Parentheses»»

Решаем задачку «Coin Change»

Условие

Даны монеты разного номинала и некоторая сумма денег. Напишите функцию для расчета минимального количества монет, которыми можно выдать эту сумму. Если это невозможно, функция должна возвращать -1. Количество монет каждого номинала неограничено. — источник

You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1. You may assume that you have an infinite number of each kind of coin.
Читать далее «Решаем задачку «Coin Change»»

Решаем задачку «Reverse Integer»

Условие

Дано 32-битное целое число, необходимо вернуть перевернутое ему число, при этом если трансформированное число превышает 32 бита, вернуть 0. — источник

Given a 32-bit signed integer, reverse digits of an integer. Return 0 when the reversed integer overflows 32-bit.
Читать далее «Решаем задачку «Reverse Integer»»

Разница между строчными и блочными элементами

Начинающему разработчику не всегда удается разобраться  в чем разница между строчными и блочными элементами. Ниже приведены основные различия для облегчения понимания.

Читать далее «Разница между строчными и блочными элементами»

Как заставить Git «забыть» о файле, который отслеживался, а теперь находится в .gitignore, но продолжает появляться в git status?

В процессе работы с репозиторием могут возникнуть ситуации, когда нужно прекратить индексацию файла. Это делается путем указания его в файле .gitignore, но иногда файл продолжает отслеживаться.

В каких случаях это происходит? Например, когда файл попадает в коммит на предыдущих этапах разработки. Так как файл становится частью истории, добавление его в .gitignore файл не принесет результата.

Читать далее «Как заставить Git «забыть» о файле, который отслеживался, а теперь находится в .gitignore, но продолжает появляться в git status?»

Как можно откатить изменения к последнему коммиту (вернуть репозиторий Git к предыдущему коммиту)

Git  имеет огромное количество инструментов по исправлению ошибок, возникающих во время работы. Для возврата репозитория к состоянию предыдущего коммита («откатить» последние изменения) или удаления коммитов, можно воспользоваться командой git-revert. Эта команда создает новый коммит (называемый обратным), отменяющий изменения, внесенные в старом коммите.

Читать далее «Как можно откатить изменения к последнему коммиту (вернуть репозиторий Git к предыдущему коммиту)»

Как удалить большой файл из истории коммитов?

Иногда, в процессе работы в коммит может ошибочно попасть большой файл. Это значительно увеличивает вес коммита и сказывается на производительности системы. Для решения подобных проблем была создана команда filter-branch — она позволяет редактировать большое количество коммитов одной командой, например: удалять ненужные файлы из истории.

Читать далее «Как удалить большой файл из истории коммитов?»