var a = {} var b = 10; console.log(c)
所以我对提升的理解是,在执行上下文的创建阶段,a是未定义的。但是在下一行中,a被赋值给{},c也被赋值。当它转到下一行时,a被赋值为对象{'abc':12}。我读到过对象是通过引用赋值的。那么为什么c不引用新对象,而是引用</em
(see below)
对于最后一条语句,赋值操作符的结果实际上用于初始化一个非const引用,该引用将在语句之后立即失效:引用不能直接绑定到临时对象(不能作为临时对象绑定到const或rvalue引用另一个问题是,赋值运算符返回的lvalue看起来不像是可以移动的,尽管它实际上是指临时的。如果有任何东西使用赋值的结果来获取值,那么它将被复制而不是移动,尽管移动是完全可行的。在这一点上,值得注意的是