Динамическая типизация, это когда ты можешь написать
5 + "5"
И получить "55" с typeof string (гугли "конкатенация").
В языках со статической типизацией ты получишь ошибку - сначала нужно конвертировать все переменные в выражении к одному типу самостоятельно. Вручную нагляднее. Насколько я знаю, а может не знаю, я только js хорошо знаю - он динамический - в языках типа C++ тип данных определяется при определении переменной ключевым словом. int number = 5 или char name = 'nicky'
В js же ключики определения переменной var, let, const хавают любой тип данных, они могут быть и числом, и строкой, и объектом итп