a要素のdownload属性にファイル名を付けるとそのファイル名でダウンロードされます。
ブラウザ対応状況: https://caniuse.com/#feat=download
function download(blob, filename) {
const objectURL = window.URL.createObjectURL(blob),
a = document.createElement('a'),
e = document.createEvent('MouseEvent');
//a要素のdownload属性にファイル名を設定
a.download = filename;
a.href = objectURL;
//clickイベントを着火
e.initEvent("click", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(e);
}
//使用例
download(new Blob(['hello world']), 'hello.txt');