JavaScript 知識鞏固——內存、調用函數、回調函數

數據類型和引用類型

數據類型:null、undefined、string、number、Boolean、symbol

引用類型:object、function、array

什麼是內存

就是內存條通電後產生的可存儲數據的空間(臨時的)

內存條的產生和死亡:內存條(電路板)==》通電==》產生內存空間==》存儲數據==》處理數據==》斷電==》內存空間和數據都消失

內存分類:

    棧和堆,棧先進先出,堆先進後出

    棧:全局/局部變量(函數名)

   堆:對象(函數)

問題: var a = xxx, a內存中到底保存的是什麼?

  • xxx是基本數據, 保存的就是這個數據
  • xxx是對象, 保存的是對象的地址值
  • xxx是一個變量, 保存的xxx的內存內容(可能是基本數據, 也可能是地址值)

var a = 3 //內存保存的是3

var a = function(){...}  // 內存保存的是function的地址值

var b = "5"

var a = b;  //內存保存的是“5”

內存、變量、數據之間的關係

內存是用來存儲數據的空間

變量是內存的標識

 

undefined和null區別

undefined代表定義未賦值

null定義並賦值了,只是值爲空

什麼時候給對象賦值爲null

初始賦值,讓對象成爲null對象

var b = null;

結束前,讓對象成爲垃圾對象(被垃圾回收機制回收)

var b = ['aa',5];

b = null;

 

如何調用執行函數

test():直接調用

obj.test():通過對象調用

new test():new 調用

test.call/apply(obj):臨時讓test成obj的方法進行調用

 

什麼樣的函數纔是回調函數

  1. 你定義的
  2. 你沒有調用的
  3. 但最終執行了

常見的回調函數

  • DOM事件回調函數
  • 定時器回調函數
  • Ajax回調函數
  • 生命週期回調函數

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章