Javascript 以下输出的原因

Javascript 以下输出的原因,javascript,reactjs,Javascript,Reactjs,我正在上一门关于Edx的课程。在一次测试中,询问了以下代码的输出。我回答1。但实际上答案是0。它实际上是在渲染0。谁能告诉我为什么 var num = 0; var element = <div> {num} </div> ReactDOM.render( element, document.getElementById("root") ) num++; ReactDOM.render( element, document.getEle

我正在上一门关于Edx的课程。在一次测试中,询问了以下代码的输出。我回答1。但实际上答案是0。它实际上是在渲染0。谁能告诉我为什么

var num = 0;

var element = <div> {num} </div>
ReactDOM.render(
    element,
    document.getElementById("root")
)
num++;

ReactDOM.render(
    element,
    document.getElementById("root")
)

num++;
因为元素是React.element的实例。React元素仅在通过setState或其他状态/道具修改生命周期方法更新状态后更新。在您的情况下,元素没有任何更新的理由-它的行为就像创建了num变量的副本一样,因此任何侧面的更改都不会影响元素,并且ReactDOM.render将始终呈现传递了初始值的元素


希望,我清楚地解释了它,它将帮助您:

更像java中的最终变量?