Даже не знаю с чего начать...
Ну начну с определений объектов
Number и
String (сами почитаете).
У объектов есть методы, объекты можно вызывать как функции.
Первый пример
Number(Math.pow(2, 4));
Здесь мы имеем два объекта Number и Math. У объекта Math вызывается метод pow, который возвращает некое значение. Это значение передается в качестве параметра в Number, вызываемый как функция для приведения переданного значения к числу.
То есть Number() ожидает параметр, и мы его туда передаем.
Второй пример.
str.toLowerCase().includes(s);
Здесь вы имеем объект String (строка в переменной str). У этого объекта куча методов, которые можно использовать. Здесь вызывается метод toLowerCase(). Этот метод НЕ принимает никаких параметров (смотрите документацию) и возвращает новый объект String. Затем у этого нового объекта String вызывается еще один метод includes(s)