为什么js直接改变元素反而不行?

function myFunction(){
    var x=document.getElementById("fname");
    x.value=x.value.toUpperCase();

}

先获取元素再改就能够改变元素

document.getElementById("fname").value.toUpperCase();
 这样直接更改就不行,有什么原理或错误吗?

没有赋值的动作,第一个有 = 赋值,就修改了,第二个没有

var x=document.getElementById("fname").value.toUpperCase();