亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果由于提升變量應該在我的情況下是函數的范圍之上,為什么函數首先返回?

如果由于提升變量應該在我的情況下是函數的范圍之上,為什么函數首先返回?

精慕HU 2021-08-20 16:17:00
托管變量應該在作用域的頂部,這樣 displayInstructor 函數上的變量應該在作用域的頂部,但它仍然返回 undefined 為什么?不應該回答應該是變量值?因為吊起它應該在上面function displayInstructor(){    return instructor;    var instructor = "Loser";}
查看完整描述

2 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

根據文檔- It's important to point out that the hoisting will affect the variable declaration, but not its value's initialization. The value will be indeed assigned when the assignment statement is reached.


變量instructor將被提升到函數的頂部displayInstructor,但是它的值將在到達語句時分配var instructor = "Loser";。該return語句在執行實際賦值代碼之前使用,此時變量instructor為undefined.


function displayInstructor(){

    console.log(instructor) // undefined

    return instructor;

    var instructor = "Loser";

}


console.log(displayInstructor());

相反,首先分配值,然后返回變量。


function displayInstructor() {

  var instructor = "Loser";

  return instructor;

}


console.log(displayInstructor());


查看完整回答
反對 回復 2021-08-20
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

解釋器首先遍歷代碼,創建變量并將它們分配給 undefined。此函數將返回 undefined 因為返回將在賦值之前起作用。


查看完整回答
反對 回復 2021-08-20
  • 2 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號