1. 什么是JavaScript
JavaScript是一種基于原型 芋齿、 弱類型腥寇、動態(tài)解釋型的腳本語言。是瀏覽器的一部分觅捆,基于瀏覽器操作赦役。用來給HTML網(wǎng)頁增加動態(tài)功能。
互聯(lián)網(wǎng)發(fā)展初期栅炒,不存在客戶端處理程序掂摔,但是網(wǎng)頁變得更加復(fù)雜功能更加豐富,需要處理的事情越來越多赢赊,如果任何處理邏輯都放到后端乙漓,效率低下(帶寬,服務(wù)器負(fù)擔(dān))释移。Netscape(網(wǎng)景)的Brendan
Eich(布蘭登·艾奇)在1995年5月被公司要求做一個“看上去和Java相似叭披,但是比java簡單的網(wǎng)頁腳本語言”,他本身對Java不感興趣玩讳,花了10天設(shè)計了JavaScript滿足了公司要求涩蜘。其設(shè)計思想:1.C語言語法;2.Java數(shù)據(jù)類型于內(nèi)存管理3.函數(shù)第一等公民 4.基于原型(prototype). 語言本身設(shè)計之初出現(xiàn)了很多問題锋边,后來不斷完善好了皱坛。
ES1-5,ES6-9分水嶺,我們就處在這個分水嶺時期
JavaScript有三大組成部分:ECMAScript DOM BOM
ECMAScript : Javascript的標(biāo)準(zhǔn) 規(guī)范 語法 描述了該語言的組成的語法和基本對象 主要使用ES5 ES6版本
DOM : 文檔對象模型(Document Object Model)
描述處理網(wǎng)頁內(nèi)容的方法和接口豆巨。JavaScript通過DOM獲取HTML中的元素剩辟,來讀取 修改 移動 刪除 增添 HTML中的內(nèi)容
BOM : 瀏覽器對象模型(BrowserObjectModel)
描述與瀏覽器進(jìn)行交互的方法和接口
用是什么
JavaScript是一種動態(tài)解釋型 、弱類型往扔、基于原型的腳本 語言贩猎,代碼不進(jìn)行編譯。當(dāng)你瀏覽器執(zhí)行JavaScript的時候萍膛,可以實(shí)現(xiàn)以下的功能:
1.瀏覽器與用戶之間的交互吭服,比如輸入賬號密碼 點(diǎn)擊登錄。這些由表單和點(diǎn)擊事件組成蝗罗,借此和后臺數(shù)據(jù)交互艇棕,判斷賬號密碼是否正確,反饋用戶串塑!
2.網(wǎng)頁上面倒計時沼琉,動畫,無縫輪播圖等桩匪,通過定時器來操作的
3.JavaScript還可以處理表單打瘪,設(shè)置cookie,即時構(gòu)建HTML頁面已經(jīng)創(chuàng)建基于Web的應(yīng)用程序。
4.一些網(wǎng)頁小游戲,也是通過JavaScript開發(fā)的
JavaScript的用處很多闺骚,主要用來制作HTML頁面交互效果彩扔,提升用戶體驗(yàn)!
3.為什么要使用JavaScript
因?yàn)樗侵髁鳛g覽器語言僻爽,能讓客戶端驗(yàn)證減少請求虫碉、減少帶寬、減少服務(wù)器壓力进泼、操作簡單蔗衡、學(xué)習(xí)成本低纤虽、瀏覽器界一統(tǒng)江湖(但是兼容支持有些微不同)乳绕、基于宿主環(huán)境,(客戶端)不能操控計算機(jī)本地文件逼纸,安全洋措。
4.JavaScript的書寫
JavaScript有兩種書寫形式:
1.內(nèi)部JS:
此標(biāo)簽在html文件任何位置都可以書寫通常內(nèi)部JS放置在</body>(body結(jié)束標(biāo)簽)之前!=芄簟菠发!
<script></script>?//和HTML標(biāo)簽一樣 ? 但是必須為雙標(biāo)簽 ? 開始和結(jié)束標(biāo)簽
2.外部js引入:
外部JS的引入方式和link引入外部css相似,但是要用script標(biāo)簽和結(jié)束標(biāo)簽: //
src= " "? :雙引號內(nèi)寫外部JS路徑贺嫂,用法與HTML 中img標(biāo)簽相似
JS的script標(biāo)簽的書寫位置決定了JS代碼的加載順序,瀏覽器是從上到下依次執(zhí)行的滓鸠,當(dāng)瀏覽器讀到script標(biāo)簽時,會阻塞HTML的進(jìn)程第喳,立刻請求讀取內(nèi)容糜俗,執(zhí)行代碼,所以可能存在頁面元素還沒有構(gòu)造的可能曲饱。通常情況下JS的代碼需要延遲到頁面的元素加載完全后執(zhí)行悠抹。
如script標(biāo)簽寫到<head>內(nèi)或?qū)懙綀?zhí)行html頁面元素上面時。會先執(zhí)行JS的內(nèi)容扩淀,頁面元素未加載楔敌,就會找不到要頁面元素。提示報錯Wぷ弧B汛铡!
通常我們使用在script標(biāo)簽 中添加defer屬性胜臊。不阻塞進(jìn)程勺卢,延遲執(zhí)行
也有另外一種屬性,叫async屬性区端,但是此種方法等頁面加載完后會立即執(zhí)行值漫,不推薦使用
簡單了解過JavaScript后,如何學(xué)好JavaScript呢织盼。
1.在學(xué)習(xí)JavaScript之前我們要先學(xué)習(xí)好CSS和 HTML杨何。因?yàn)镴S是基于HTML的基礎(chǔ)上來更改CSS酱塔。用以實(shí)現(xiàn)各種交互的,如果說HTML是人的骨架危虱,CSS就是人的肉體羊娃,人臉。那么JavaScript就是人的大腦埃跷,控制HTML來進(jìn)行各種交互蕊玷!如果對HTML、CSS不了解弥雹,最好先學(xué)習(xí)HTML CSS基礎(chǔ)知識垃帅。
2.多讀書,多實(shí)踐剪勿,多交流贸诚。JavaScript也是人的一項(xiàng)技能,技能交流才會有成長厕吉,多逛論壇酱固。實(shí)踐出真知,只靠理論知識是絕對不夠的头朱,還要會用运悲,用的多了就熟練了,對自己寫代碼的速度有一定的提升项钮!對問題的解決能力也會加強(qiáng)班眯!