JS замена вхождений подстроки в строке

Нужно заменить все вхождения одной строки в другой. Как это можно сделать? а то метод replace заменяет только первое вхождение:

str = "this string must be changed"
>>>"this string must be changed"
str.replace(' ', '_')
>>>"this_string must be changed"

для этого можно воспользоваться регулярным выражением в следующем виде:

"this string must be changed".replace(new RegExp(' ', 'g'), '_')

в конце будет получена следующая строка:

"this_string_must_be_changed"

или же можно использовать split и join для этого:

"this string must be changed".split(' ').join('_');

в качестве результата получим тоже самое:

"this_string_must_be_changed"