Of course. createTextNode will escape any strings and show them as they are, while innerHTML could render html-like strings into a DOM. If you don’t want that (unless you are sure the text contains no unescaped tags, e.g. when assigning a literal directly), you can use textContent (or innerText for IE).
Yet I’d recommend createTextNode, because all browsers support it equally without any quirks.