資料儲存方式:
建立乙個基本的資料型別,把資料儲存在棧裡面;如果建立引用資料型別,則把資料儲存在堆裡面,但會在棧裡面儲存該資料型別的位址(位址是字串)。
棧:儲存基本資料型別,儲存使用者建立引用資料型別在堆的位址(位址是字串)。
堆:儲存引用資料型別,也可以儲存包含基本資料型別的物件。
ec——execution context:執行上下文:當前環境下變數的取值
功能:**執行之前的準備工作,確定當前環境下變數的取值
分類:全域性上下文:開啟乙個新的視窗,就會建立乙個新的全域性上下文(關閉即銷毀)
區域性上下文:呼叫函式時就會建立乙個區域性上下文(函式執行完,銷毀)
eval上下文(了解):可以解析字串中的js**
變數提公升:var宣告的變數(除函式內),值提公升變數的宣告。
函式提公升:字面量宣告的函式,提公升整個函式體。
執行上下文的生命週期:
1.建立(呼叫的前一刻):變數和函式的提公升
2.執行:函式體的**(改變當前變數和全域性變數的值)
執行棧:存放執行上下文(最底的是go,最上面是正在呼叫的函式)
注:filo、進棧(壓棧)、出棧 規則:先進後出,最底的是最先進入的
3.銷毀
全域性執行上下文:
1.全域性物件window(go——globel object)
2.提公升
區域性執行上下文:
1.建立區域性物件(ao——active object)
2.預編譯
a>形參 變數 (提公升)
b>形參 變數賦值 undefined
c>形參和實參相統一
d>函式提公升
e>確定this的指向(由呼叫者確定)
f>確定作用域(詞法環境,在**宣告,就確定在**)
g>初始化作用域鏈
3.執行函式體**
暫時性死區的出現:
var i = 0;
function f70()
f70();
作用域與執行上下文的區別:
作用域:是靜態的,寫完**時就確定好了個數。
執行上下文:是動態的,函式被呼叫一次就建立乙個。
作用域鏈(scope chain):如果作用域鏈在ao裡,則先在ao裡面找變數的值,如果其中沒有,則會找祖先中是否含有變數,如果都沒有,則會在go內找,除函式外(函式的找值,是從函式宣告的位置的祖先開始)。
js學習筆記 高階函式 1
一 map 案例1 arr 1,2,3,4,5 需要將陣列元素翻倍 arr.map function x 二 reduce 個人理解該函式類似於遞迴f f f x 案例 arr 1,3,4,5,6 需求陣列元素之和 arr.reduce function x,y 三 filter 顧名思義過濾 案例...
智慧型駕駛高階課程1 Apollo開源模組
駕駛方面行業趨勢 by wire 車輛必須要能被電腦控制 高精度地圖 精確到車道線級別,要有交通標誌等資訊。如何更精準的定位 rtk 相對定位 幾何定位 在知道某一些靜止物體的絕對位置之後可以計算出自己相對於這些物體的相對位置,得到自己的位置。各類感測器 ladar公釐級別 lidar 大公尺級別雷...
Apollo高階課程 1 自動駕駛行業概述
共享出行 汽車的利用率不高,車子95 的時間依然空置。停車位佔據了24 的城市空間 新能源汽車 新能源汽車不光是行業的趨勢 國際化的趨勢,也是中國重要的發展趨勢和方向。新能源汽車為我們提供了乙個彎道超車的機會。人一分鐘可以處理30 100資訊量,無人駕駛車可以處理3000左右資訊量。其車載系統資訊處...