預解釋

1.預解釋

  • 在瀏覽器加載的時候,首先會提供一個供全局js代碼執行的環境 —全局作用域(global/window)
  • 預解釋:在當前作用域中,在js代碼執行之前,瀏覽器會默認的把帶var跟function的進行聲明與定義
var num = 12;
var obj = {name:'zhang',age:13};
funtion fn(){
   console.log('zzzz');
}
console.log(fn);//把函數部分在(包括函數本身)在控制檯輸出
console.log(fn());//返回函數運行結果

學會畫圖

理解聲明與定義
  • 聲明:var num 告訴瀏覽器在全局的作用域中有一個num的變量了,如果一個變量只是聲明瞭但是沒有賦值,默認的值是undefined
  • 定義:num=12 給我們的變量進行賦值
var與function預解釋的區別
  • var:在預解釋的時候只是提前的聲明
  • funciton:在預解釋的時候提前的聲明+定義都完成了
預解釋只發生在當前的作用域下
  • 開始只對window下的進行預解釋
  • 只有函數執行的時候纔會對函數中的進行預解釋
    在這裏插入圖片描述
js的內存分類
  • 棧內存:用來提供一個供js代碼執行的環境—>作用域(全局作用域、私有)
  • 堆內存:用來存儲引用數據類型的值—>對象存儲的是屬性名和屬性值。函數存儲代碼字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章