下面的代碼在Browser和Node.js中會有所不同。Native瀏覽器和Node.js中的JavaScript函數聲明獲得不同的結果
瀏覽器的結果是a
。
Node.js的結果是b
。
if (1) {
function foo() { return 'a'; }
} else {
function foo() { return 'b'; }
}
console.log(foo());
儘管這種代碼風格是反模式,但代碼仍然可以在環境中運行。
如何解釋?
僅供參考。
Node.js的環境鏈接: https://repl.it/CgWh
機瀏覽器環境鏈接: https://repl.it/CgWj
這些鏈接可能不是永久性的。
塊中的函數聲明不達標據我所知,所以你不應該期望的行爲是相同的不同實現。 – elclanrs