Используйте Reduce для перебора массива, начинающегося с пустой строки, и возврата самого длинного из двух на каждой итерации.
Причина, по которой вы получаете неопределенную ошибку, заключается в том, что myString является параметром вашей функции ивы ничего не пропускаете в него, поэтому не определены.
var myString = document.getElementById("p").innerText;
function longestWordFunc() {
return myString.split(" ").reduce((longest, current) => current.length > longest.length ? current : longest, '');
}
<p id="p">I'm looking for the longest length of a word in this sentence</p>
<button onclick="console.log(longestWordFunc())">Click</button>