js簡單的歸納 js簡單的歸納 基本類型 number,string,boolean,null,undefined 組合類型 一種對象類型: object 數組 函數 對象 正則 關於函數 作用域 閉包 構造函數 原型鏈 關於對象 類 類的繼承 實例方法 靜態方法 私有方法 運算符 算術 邏輯 關係 ...
js簡單的歸納
基本類型
number,string,boolean,null,undefined
組合類型
一種對象類型: object
數組
函數
對象
正則
關於函數
作用域
閉包
構造函數
原型鏈
關於對象
類
類的繼承
實例方法
靜態方法
私有方法
運算符
- 算術
- 邏輯
- 關係
- 位
語句
迴圈分支語句
JS中聲明變數的幾種方式
a,b參數變數 如function fn(a,b){}
p,q是var定義的
m:函數聲明:FD
他們的區別
他們都會變數上浮。(variable hoist);
除了函數聲明外,其他類型的變數,只是定義上浮了。
執行上下文
ec(執行上下文):
可以看做一個對象{}的格式(調試裡面的scope),裡面存儲著函數裡面定義的所有變數)
垃圾回收器
gc:垃圾回收器
系統會隔一段時間,或者當記憶體占用過大的時候,去遍歷一下所有的變數。
變數清除的方式
如果發現,沒有其他變數引用它,就把他清空,釋放記憶體。
(有兩種方案決定變數的回收:一種是: 引用計數,一種是: 函數內部的函數或變數被依賴)
閉包:
-
自由變數:函數裡面引用的外面定義的變數,叫自由變數。
-
閉包的錶面理解:當一個函數執行,返回一個函數,這個函數還可以引用這個函數內部的變數。這種情形叫閉包。
- 深層理解:當函數執行完畢,他的ec被推出調用堆棧。如果有其他變數引用它,他不會被gc回收。所以這造就了閉包。