【2022全新JS++前端課程】『JavaScript深度指南』之全線技術提升

JavaScript 深度指南: 紅色重要 了解
瀏覽器內(nèi)核:Trident (ie) Webkit (chrome) Gecko(firefox) opera (presto)
瀏覽器歷史:(記得感恩前輩給我們吃飯的東西,了解前輩們走過的路)
1990 超文本分享資訊 蒂姆 伯拉斯 李
1993 馬克 安德森 發(fā)明 MOSIAC 瀏覽器 顯示圖片 第一款圖形化瀏覽器
1994 馬克 吉姆.克拉克
Netscape 網(wǎng)景公司 -> netscape navigator 瀏覽器
1996 微軟公司收購 spy glass =>Mosiac 內(nèi)核 => IE 瀏覽器 同年 出版 IE3 JScript
網(wǎng)景公司 Brendan eich = livescript 腳本程序運行困難
Java 火起來,趁一波小熱度。livescript -> javascript 網(wǎng)景和Sun 公司合作 推廣。
2001 年:IE6 XP 出現(xiàn) JS Engine.
2003 年 mozilla 公司 => firefox 基于 netscape navigator
2008 google 基于 WEBKIT BLINK progressive web app 漸進性webapp
chrome 瀏覽器 V8 引擎 (JS engine)
牛逼之處: 可以直接翻譯機器碼。
獨立于瀏覽器,nodejs 就是基于v8 獨立于瀏覽器的就是運行環(huán)境
2009 甲骨文收購了SUN 公司
歐洲計算機制造聯(lián)合會 ECMA 評估 開發(fā) 計算機的標準規(guī)范
ECMAScript 腳本語言的規(guī)范。
編程語言 :編譯型語言 解釋器型語言。
源碼 -> 編譯器-> 機器語言 -> 可執(zhí)行文件。運算速度相對來說比較快。
源碼 -> 解釋器 -> 解釋一行就執(zhí)行一行。(不需要根據(jù)系統(tǒng)平臺移植,只需要平臺有相關的解釋器就可以啦)
腳本語言-> 腳本引擎-> 解析器。
cpu 的執(zhí)行速度太快了,人類根本察覺不到任務在cpu調(diào)度器的切換。
Javascript JS 引擎 輪轉時間片
基本類型
var str = "hello'
根據(jù)聲明的值確定類型=> 弱類型語言=動態(tài)語言
原始值: 存在棧內(nèi)存 數(shù)據(jù)永久保存 不可直接更改
number string boolean null undefined bigint symbol
重要
字符串數(shù)據(jù)被存儲到堆,然后把字符串的引用地址存儲在字符串變量中。同時為了避免錯誤操作,js強制約定字符串在堆存儲的數(shù)據(jù)是不可變的。相當于設置字符串在堆區(qū)存儲的數(shù)據(jù)是只讀的。
你要這要想,字符串那么長,直接放棧上面,棧內(nèi)存不一下就溢出了嗎
引用值:
null 空值 Array Date Function RegExp
/////////////////////////////////////////////////////////////// 第一節(jié) //////////////////////////////////////////////////////////////////////
函數(shù)基礎 高內(nèi)聚 低耦合 模塊的單一責任制
// 解耦合方式 => 抽離成函數(shù)
functio test () {
var a = b =1; // 小坑, 當前b 是全局變量 被掛載到全局對象上面
}
// 形參 和 實參數(shù)量可以不相等 可根據(jù)arguements 對象獲取對應的實際參數(shù)值。
function test (a,b) {
a=3 // 函數(shù)內(nèi)部可直接更改實際參數(shù)值 此時arguements [0] = 3,前提是實際參數(shù)需要傳值。 形參在函數(shù)中和實際參數(shù)具有一一映射的關系,你變我也變。
}
參數(shù)默認值是undefined , 函數(shù)賦值初始值 優(yōu)先取非undefined的值進行賦值
// undefined null NAN " " 0 false => return false
// 固定的功能或者函數(shù)端是被封裝的過程。
// Refrence error 變量需要先聲明好 然后才能使用
/////////////////////////////////////////////////////////////// 第四節(jié)課 //////////////////////////////////////////////////////////////////////
// 代碼如何執(zhí)行的
1 先全部檢查代碼的語法錯誤
1.5:預編譯階段:
JavaScript 深度指南: 紅色重要 了解
瀏覽器內(nèi)核:Trident (ie) Webkit (chrome) Gecko(firefox) opera (presto)
瀏覽器歷史:(記得感恩前輩給我們吃飯的東西,了解前輩們走過的路)
1990 超文本分享資訊 蒂姆 伯拉斯 李
1993 馬克 安德森 發(fā)明 MOSIAC 瀏覽器 顯示圖片 第一款圖形化瀏覽器
1994 馬克 吉姆.克拉克
Netscape 網(wǎng)景公司 -> netscape navigator 瀏覽器
1996 微軟公司收購 spy glass =>Mosiac 內(nèi)核 => IE 瀏覽器 同年 出版 IE3 JScript
網(wǎng)景公司 Brendan eich = livescript 腳本程序運行困難
Java 火起來,趁一波小熱度。livescript -> javascript 網(wǎng)景和Sun 公司合作 推廣。
2001 年:IE6 XP 出現(xiàn) JS Engine.
2003 年 mozilla 公司 => firefox 基于 netscape navigator
2008 google 基于 WEBKIT BLINK progressive web app 漸進性webapp
chrome 瀏覽器 V8 引擎 (JS engine)
牛逼之處: 可以直接翻譯機器碼。
獨立于瀏覽器,nodejs 就是基于v8 獨立于瀏覽器的就是運行環(huán)境
2009 甲骨文收購了SUN 公司
歐洲計算機制造聯(lián)合會 ECMA 評估 開發(fā) 計算機的標準規(guī)范
ECMAScript 腳本語言的規(guī)范。
編程語言 :編譯型語言 解釋器型語言。
源碼 -> 編譯器-> 機器語言 -> 可執(zhí)行文件。運算速度相對來說比較快。
源碼 -> 解釋器 -> 解釋一行就執(zhí)行一行。(不需要根據(jù)系統(tǒng)平臺移植,只需要平臺有相關的解釋器就可以啦)
腳本語言-> 腳本引擎-> 解析器。
cpu 的執(zhí)行速度太快了,人類根本察覺不到任務在cpu調(diào)度器的切換。
Javascript JS 引擎 輪轉時間片
基本類型
var str = "hello'
根據(jù)聲明的值確定類型=> 弱類型語言=動態(tài)語言
原始值: 存在棧內(nèi)存 數(shù)據(jù)永久保存 不可直接更改
number string boolean null undefined bigint symbol
重要
字符串數(shù)據(jù)被存儲到堆,然后把字符串的引用地址存儲在字符串變量中。同時為了避免錯誤操作,js強制約定字符串在堆存儲的數(shù)據(jù)是不可變的。相當于設置字符串在堆區(qū)存儲的數(shù)據(jù)是只讀的。
你要這要想,字符串那么長,直接放棧上面,棧內(nèi)存不一下就溢出了嗎
引用值:
null 空值 Array Date Function RegExp
/////////////////////////////////////////////////////////////// 第一節(jié) //////////////////////////////////////////////////////////////////////
函數(shù)基礎 高內(nèi)聚 低耦合 模塊的單一責任制
// 解耦合方式 => 抽離成函數(shù)
functio test () {
var a = b =1; // 小坑, 當前b 是全局變量 被掛載到全局對象上面
}
// 形參 和 實參數(shù)量可以不相等 可根據(jù)arguements 對象獲取對應的實際參數(shù)值。
function test (a,b) {
a=3 // 函數(shù)內(nèi)部可直接更改實際參數(shù)值 此時arguements [0] = 3,前提是實際參數(shù)需要傳值。 形參在函數(shù)中和實際參數(shù)具有一一映射的關系,你變我也變。
}
參數(shù)默認值是undefined , 函數(shù)賦值初始值,賦值默認優(yōu)先取非undefined的值進行賦值
// undefined null NAN " " 0 false => return false
// 固定的功能或者函數(shù)端是被封裝的過程。
// Refrence error 變量需要先聲明好 然后才能使用
/////////////////////////////////////////////////////////////// 第四節(jié)課 //////////////////////////////////////////////////////////////////////
// 代碼如何執(zhí)行的
1 先全部檢查代碼的語法錯誤
1.5:預編譯階段: 函數(shù)聲明會整體提升,變量申明提升
2 解釋一行 執(zhí)行一行
2 解釋一行 執(zhí)行一行