JavaScript 基礎(chǔ)部分

  1. JavaScript是一種專(zhuān)為與網(wǎng)頁(yè)交互而設(shè)計(jì)的腳本語(yǔ)言,由三部分組成
  • ECMAScript,提供核心語(yǔ)言功能
  • 文檔對(duì)象模型(DOM),提供訪問(wèn)和操作網(wǎng)頁(yè)內(nèi)容的方法和接口
  • 瀏覽器對(duì)象模型(BOM),提供與瀏覽器交互的方法和接口
  1. sciprt標(biāo)簽
<script async  charset defer  src  type="text/script"></script>

async:表示應(yīng)該立即下載腳本,但不應(yīng)妨礙頁(yè)面中的其他操作,比如下載其他資源或等待加載其他腳本。只對(duì)外部腳本文件有效。(讓頁(yè)面等待兩個(gè)腳本下載和執(zhí)行,從而異步加載頁(yè)面其他內(nèi)容)
charset:表示通過(guò) src 屬性指定的代碼的字符集
defer:表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行。只對(duì)外部腳本文件有效(瀏覽器立即下載,延遲執(zhí)行)
src:表示包含要執(zhí)行代碼的外部文件,指向相應(yīng)文件的 URL,而這個(gè)文件既可以是與包含它的頁(yè)面位于同一個(gè)服務(wù)器上的文件,也可以是其他任何域中的文件
type:表示編寫(xiě)代碼使用的腳本語(yǔ)言的內(nèi)容類(lèi)型
只要不存在 defer 和 async 屬性,瀏覽器都會(huì)按照<script>元素在頁(yè)面中出現(xiàn)的先后順序?qū)λ鼈円来芜M(jìn)行解析。在文檔的<head>標(biāo)簽中包含所有的JavaScript文件,意味著必須等到全部 JavaScript 代碼都被下載、 解析和執(zhí)行完成以后,才能開(kāi)始呈現(xiàn)頁(yè)面的內(nèi)容(瀏覽器在遇到<body>標(biāo)簽時(shí)才開(kāi)始呈現(xiàn)內(nèi)容),因此,一般講script標(biāo)簽的引用放在body標(biāo)簽內(nèi),這樣在解析包含的 JavaScript 代碼之前,頁(yè)面的內(nèi)容將完全呈現(xiàn)在瀏覽器中

  1. JavaScript文件外部引用優(yōu)點(diǎn)
  • 可維護(hù)性
  • 可緩存(多個(gè)頁(yè)面引用同個(gè)文件,該文件只需下載一次,加快了頁(yè)面加載速度)
  1. 數(shù)據(jù)類(lèi)型
    Undefined Number Boolean String Null Object 6種數(shù)據(jù)類(lèi)型
  • typeof 返回?cái)?shù)據(jù)類(lèi)型
  • undefined類(lèi)型 :使用 var 聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是 undefined
  • null類(lèi)型:null 值表示一個(gè)空對(duì)象指針,如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象,那么最好將該變量初始化為 null
    *數(shù)值轉(zhuǎn)換:Number()、 parseInt()、 parseFloat()->可帶第二個(gè)參數(shù),表示進(jìn)制,如parseInt('AF',16)
  1. js 基本類(lèi)型值和引用類(lèi)型值
    引用類(lèi)型值是保存在內(nèi)存中的對(duì)象,js不能直接操作對(duì)象的內(nèi)存空間,而是操作對(duì)象的引用
    函數(shù)的參數(shù)是按值傳遞的
  • 檢測(cè)類(lèi)型
    typeof 確定變量是字符串、布爾值、數(shù)值等
    instanceof 判斷它是什么類(lèi)型的對(duì)象
  1. 環(huán)境
    在web瀏覽器中,全局執(zhí)行環(huán)境被認(rèn)為是window對(duì)象,因此所有全局變量和函數(shù)都是作為window對(duì)象的屬性創(chuàng)建的。某個(gè)執(zhí)行環(huán)境中,所有代碼執(zhí)行完畢后,該環(huán)境被銷(xiāo)毀,保存在其中的所有變量和函數(shù)定義也隨之銷(xiāo)毀

小結(jié)之變量

  • 基本類(lèi)型值在內(nèi)存中占據(jù)固定大小的空間,因此被保存在棧內(nèi)存中
  • 從一個(gè)變量向另一個(gè)變量復(fù)制基本類(lèi)型的值,會(huì)創(chuàng)建這個(gè)值的一個(gè)副本
  • 引用類(lèi)型的值是對(duì)象,保存在堆內(nèi)存中
  • 包含引用類(lèi)型值的變量實(shí)際上包含的并不是對(duì)象本身,而是一個(gè)指向該對(duì)象的指針
  • 從一個(gè)變量向復(fù)制另一個(gè)變量復(fù)制引用類(lèi)型的值,復(fù)制的其實(shí)是指針,因此兩個(gè)變量最終都指向同一個(gè)對(duì)象

小結(jié)之作用域

所有變量(包括基本類(lèi)型和引用類(lèi)型)都存在于一個(gè)執(zhí)行環(huán)境(也稱為作用域)當(dāng)中,這個(gè)執(zhí)行環(huán)境決定了變量的生命周期,以及哪一部份代碼可以訪問(wèn)其中的變量

  • 執(zhí)行環(huán)境分全局環(huán)境和函數(shù)執(zhí)行環(huán)境
  • 每次進(jìn)入一個(gè)新執(zhí)行環(huán)境,就會(huì)創(chuàng)建一個(gè)用于搜索變量和函數(shù)的作用域鏈
  • 函數(shù)的局部環(huán)境不僅有權(quán)訪問(wèn)函數(shù)作用域中的變量,而且有權(quán)訪問(wèn)其父環(huán)境乃至全局環(huán)境
  • 全局環(huán)境只能訪問(wèn)在全局環(huán)境中定義的變量和函數(shù),而不能直接訪問(wèn)局部環(huán)境中的任何數(shù)據(jù)
  • 變量的執(zhí)行環(huán)境有助于確定應(yīng)該何時(shí)釋放內(nèi)存

小結(jié)之垃圾回收

  • 離開(kāi)作用域的值將被自動(dòng)標(biāo)記為可以回收,因此將在垃圾收集期間被刪除(“標(biāo)記清除”算法)
  • 解除變量的引用不僅有助于消除循環(huán)引用現(xiàn)象,對(duì)于垃圾回收也有好處。為了確保有效地回收內(nèi)存,應(yīng)該及時(shí)解除不再使用的全局對(duì)象、全局對(duì)象屬性以及循環(huán)引用變量的引用(讓對(duì)象=null,是讓垃圾回收時(shí)可以回收該對(duì)象)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評(píng)論 3 428
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 177,823評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,604評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,339評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,713評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評(píng)論 3 445
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,893評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,201評(píng)論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,397評(píng)論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,631評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,033評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,321評(píng)論 1 293
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,128評(píng)論 3 398
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,347評(píng)論 2 377

推薦閱讀更多精彩內(nèi)容

  • 第1章 JavaScript 簡(jiǎn)介 JavaScript 具備與瀏覽器窗口及其內(nèi)容等幾乎所有方面交互的能力。 歐洲...
    力氣強(qiáng)閱讀 1,155評(píng)論 0 0
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,818評(píng)論 18 139
  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問(wèn)題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 7,859評(píng)論 0 27
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,733評(píng)論 18 399
  • 名字來(lái)源比利時(shí)數(shù)學(xué)家卡塔蘭。卡塔蘭:Catalan 數(shù)列滿足 通項(xiàng): 給定n個(gè)節(jié)點(diǎn),能構(gòu)成的二叉搜索樹(shù)個(gè)數(shù)為Cn。...
    方某某閱讀 302評(píng)論 0 0