Если в alert вместо num подставить document.getElementById("number").value, то работает (возвращает квадрат введенного числа). Почему не работает с переменной num, в которую записан document.getElementById("number").value?
jsfiddle -
https://jsfiddle.net/2gkzd861/13/<div>
Введите число: <input id="number" type="text">
<button id="btn">Квадрат числа</button>
</div>
var num = document.getElementById("number").value;
var btn = document.getElementById("btn");
btn.addEventListener("click", function getSquareNumber() {
alert(num*num);
});