Вы передаете строку в функцию, это примитивное значение всего их 6: String, Number, Boolean, Symbol, null, undefined. Создается копия вашей строки которая присваивается параметру str. Если бы вы передали объект Object(или подтип объекта Function, Array, etc), тогда параметру присваивается ссылка на этот объект. напрмер:
let o = {a: 3}; //ссылка на объект
function foo(obj) {
//obj это другая ссылка на этот же объект
obj = {a:666} //теперь obj указывает на совсем другой объект
}
foo(o)
o // {a:3}
Т.е в js нельзя вручную указать хотите ли вы ссылку или копию (как в C++ например), здесь ссылка/копия значения определяется типом данных.
Если с англ. норм то почитайте:
раздел Value vs. Reference