第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用 var 提升

用 var 提升

鴻蒙傳說 2023-07-20 15:11:12
為什么在第一種情況下會(huì)打印 x 是一個(gè)函數(shù)而不是未定義?(() => {    var x    function x() {}    console.log(x)})()> ? x() {}(() => {    var x = 1    function x() {}    console.log(x)})()> 1
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

發(fā)生這種情況是因?yàn)?JavaScript 與提升的工作方式有關(guān)。函數(shù)function VARIABLENAME() {}會(huì)在變量的“存在”調(diào)用下調(diào)出,并且變量更改值保留在其位置,但由于函數(shù)向上移動(dòng)而相對(duì)向下移動(dòng)。


第一組

(() => {

    var x


    function x() {}


    console.log(x)

})()


// This gets converted to:

(() => {

    var x // This variable exists


    x = function x() {} // Ya know that variable called x? well its a function


    console.log(x)

})()


第二組

(() => {

    var x = 1


    function x() {}


    console.log(x)

})()


// This gets converted to:

(() => {

    var x // the variable x exists


    x = function x() {} // Functions are moved to the top, under variable declarations

    

    x = 1 // x is now the value 1


    console.log(x)

})()


查看完整回答
反對(duì) 回復(fù) 2023-07-20
?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

提升是在編譯期間將變量(僅聲明的左側(cè))或函數(shù)聲明移動(dòng)到相應(yīng)環(huán)境頂部的行為。


Javascript 引擎在代碼執(zhí)行之前的創(chuàng)建階段為變量和函數(shù)分配內(nèi)存。


您的第一個(gè)示例的解釋就像您編寫的那樣:


// creation phase start

var x = undefined;

function x() {}; // a function is fully hoisted. So x references the function.

// creation phase end


// execution phase start

console.log(x); // therefore x is a function

// execution phase end

您的第二個(gè)示例的解釋與您編寫的略有不同:


// creation phase start

var x = undefined;

function x() {}

// creation phase end


// execution phase start

x = 1;

console.log(x); // therefore x got overwritten, therefore 1

// execution phase end

需要了解的一件有趣的事情是: 如果您像這樣編寫第一個(gè)示例......


var x


(function x() {}) // round brackets


console.log(x)

...函數(shù)聲明的提升不會(huì)發(fā)生,因?yàn)橐婵吹降牡谝患录炔皇?var 也不是函數(shù)!


查看完整回答
反對(duì) 回復(fù) 2023-07-20
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)