一、基本類型和引用類型
ECMAScript變量中可能包含兩種不同數據類型的值:基礎類型值和引用類型值。
基礎類型值指的是簡單數據段;引用類型值指那些很多個值構成的對象
1、復制變量值
如果是復制基礎類型值的方法:就是在堆內存中開辟一個新空間,然後復制那個值過去
2、傳遞參數
所有函數的參數都是按值傳遞的
訪問變量有按值和按引用兩種方式,但參數只能按值傳遞
3、檢測類型
通常用typeof
並不是想知道某個值是對象,而是想知道它是什麼類型的對象。那就用instanceof
(比如要檢測變量person是object還是array或者是regexp類型,這個時候不能用typeof還是需要用instanceof)
二、執行環境及作用域
1、每個函數都有自己的執行環境
2、有一條作用域鏈就是讓內部環境有序,線性地訪問外部環境。
3、如何延長作用域鏈
try-catch語句中的catch塊
with語句
4、特點:
(一)沒有塊級作用域,所謂的塊級作用域打個比方
if(){}
一般大括號裡面如果定義變量,那這個變量的作用域就是這個大括號裡,大括號就是一個塊
(二)查詢標識符
先在自己的局部環境內尋找,然後順著作用域鏈向上尋找,直到找到就不再找了
三、垃圾收集
1、找出那些不再繼續使用的變量,然後釋放其占用的內存
(一)標記清除
(二)引用計數