在javascript中提升

use*_*625 4 javascript hoisting

我之前问了一个问题,有人给我一个指南,我读了它,我看到了这个

  var temp = setTimeout,
  setTimeout = function() {};
Run Code Online (Sandbox Code Playgroud)

他说,由于JavaScript提升,temp将不确定,我不明白为什么不应该这样?

    var temp;
    temp = setTimeout;
    setTimeout = function() {};
Run Code Online (Sandbox Code Playgroud)

为什么它未定义?

Ber*_*rgi 5

这不一样.您的多重var声明还声明setTimeout:

var temp = setTimeout,
    setTimeout = function() {};
Run Code Online (Sandbox Code Playgroud)

这是悬挂的

var temp; // = undefined
var setTimeout; // = undefined
temp = setTimeout;
setTimeout = function() {};
Run Code Online (Sandbox Code Playgroud)