Javascript中變量聲明的提升

對于所有的變量,無論在函數體的何處進行聲明,都會在后臺被提升到函數的頂部。

1.對于非函數變量

var str = 'hello world'; (function() { console.log(str); //undefined var str = "hello javascript"; })();

PS: 只提升變量的聲明,并不會把賦值也提升上來,
所以在聲明變量時最好在相應作用域的頂部聲明并賦值

2.函數提升

foo(); //hello world console.log(bar); //undifined bar(); //error:bar is not a function function foo() { //函數聲明和定義都會被提升 console.log("hello world"); } var bar = function() { //函數表達式只有聲明會被提升,但是定義不被提升 console.log("hello javascript"); };

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • let 和 const 命令 let 命令 塊級作用域 const 命令 頂層對象的屬性 gl...
    安小明閱讀 998評論 0 0
  • let 命令 塊級作用域 const 命令 頂層對象的屬性 global 對象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice閱讀 1,648評論 0 2
  • 前端07班 王語句JavaScript程序的執行單位為行(line),也就是一行一行地執行。一般情況下,每一行就是...
    ea203453e188閱讀 914評論 0 4
  • 夜半臨窗聽春雨, 想學陸郎賣杏花。 園中三兩桃李樹, 可憐亂紅落誰家。 tulipjia作于第一場春雨時,原詩最后...
    tulipjia閱讀 979評論 5 10