JavaScript語言
是世界上用的最多的腳本語言俯艰。它是不需要編譯讲仰,直接運(yùn)行時(shí)邊解析邊執(zhí)行的語言。
還是是一種客戶端的腳本語言碴卧。
ECMAScript 不是一門語言,而是一個(gè)標(biāo)準(zhǔn)乃正,JavaScript 是符合這個(gè)標(biāo)準(zhǔn)的住册。
JavaScript 的整體感知:
語法書寫格式:
<script type="text/javascript">……</script>
代碼的存放位置:
放在head標(biāo)簽中,如果沒有style代碼瓮具,就放在title標(biāo)簽下 ?荧飞; ?如果有style,則放在style下面搭综。
還可以放在body標(biāo)簽上(現(xiàn)在學(xué)習(xí)階段暫時(shí)不要放在這里)
alert("這是我人生中的第一個(gè)javscript程序垢箕,有點(diǎn)期待!")
注意:如果頁面上出現(xiàn)彈出框以后条获,頁面的位置不能改變,并且不能關(guān)閉蒋歌。(其實(shí)這時(shí)候?yàn)g覽器的進(jìn)程已經(jīng)被暫停了)/(比如上圖的彈出框)
語法規(guī)則:
javascript與html帅掘、css一樣,對(duì)空格堂油、換行修档,以及縮進(jìn)是不敏感的。
規(guī)范:將來在寫代碼的時(shí)候府框,一定要所有的代碼都放在script標(biāo)簽中吱窝,將且代碼最好有一個(gè)縮進(jìn)。(代碼要結(jié)構(gòu)明確,可讀性)
javascript代碼雖然對(duì)空格院峡,換行兴使,縮進(jìn)不敏感,但是在寫的時(shí)候一定要注意規(guī)范照激。
寫代碼的時(shí)候发魄,即加上空格也加上換行,使代碼的格式更加規(guī)范俩垃,可讀性更加強(qiáng)
第一個(gè):alert(); ? 在頁面上彈出一個(gè)提示框
javascript執(zhí)行順序:
從上到下啄清,從左到右六水。
javascript注釋:
// ? 注釋一行代碼
/**/ ? 注釋多行代碼
開發(fā)人員工具的使用:
第二個(gè):console.log(); ? ?在控制臺(tái)中輸出內(nèi)容(在代碼調(diào)試的時(shí)候使用的比較多)
右鍵俺孙,審查元素辣卒,打開開發(fā)人員工具,如果頁面上有錯(cuò)誤就會(huì)顯示紅叉睛榄。點(diǎn)擊tab選項(xiàng)中的最后一個(gè)tab,console荣茫,可以找出這個(gè)錯(cuò)誤來。
點(diǎn)擊tab選項(xiàng)中的最后一個(gè)tab,console场靴,可以找出這個(gè)具體的錯(cuò)誤來啡莉,從而可以排除錯(cuò)誤
點(diǎn)擊這個(gè)錯(cuò)誤,進(jìn)入soerces旨剥,就可以看到第8行有錯(cuò)誤咧欣,開發(fā)人員可以針對(duì)性修改。
console.log("這是我人生中的第二個(gè)javscript")
在瀏覽器的控制臺(tái)中輸出一句話轨帜。
作用:用來進(jìn)行代碼的調(diào)試魄咕。
應(yīng)用:比如下圖的百度招聘信息
第三個(gè):prompt(); ?輸入框,可以用來接收用戶輸入的內(nèi)容
prompt("請(qǐng)輸入您的銀行卡密碼0龈浮哮兰!")
彈出一個(gè)輸入框,給用戶提供輸入信息位置苟弛。
直接量:
如果頁面上直接使用紅色框中的數(shù)據(jù)喝滞,那么這些內(nèi)容叫做直接量。(下圖)
數(shù)據(jù)類型:
問題:為什么369沒有加引號(hào)右遭,可以輸出成功,而abc沒有加引號(hào),結(jié)果輸出失敗了窘哈?(沒有加引號(hào)的數(shù)字也能輸出言蛇,是因?yàn)樗菙?shù)值類型,往下看有介紹)
字符串:
英文是:string
特點(diǎn):用引號(hào)引起來的文本的串婿斥。
注意1:這個(gè)引號(hào)可以是單引號(hào),也可以是雙引號(hào)哨鸭。
我們平常說的話都可以理解為是字符串民宿。
注意2:如果要在字符串輸出引號(hào),可以將字符串的引號(hào)改變成單引號(hào)像鸡;
轉(zhuǎn)譯符:
常用的轉(zhuǎn)譯符有:
單引號(hào):? \' ? ? ? ? ?雙引號(hào):? \"
換行: ? \n
縮進(jìn): ? \t
空格: ? \b
回車: ? \r
斜杠: ? \\
注意注意:轉(zhuǎn)譯符的斜杠是這樣的 \ 活鹰,而 / 這個(gè)斜杠只是普通的文本。
數(shù)值類型:
英文名:number
比如:整數(shù)只估,小數(shù)志群。
特點(diǎn):表達(dá)的事一種數(shù)據(jù)的量。
表現(xiàn)形式:123,1,0蛔钙,-1,2
不用引號(hào)也可以輸出
NaN:(not a number):非數(shù)字锌云,作用:用來表示數(shù)值的一種不正常的狀態(tài)(當(dāng)計(jì)算發(fā)生錯(cuò)誤的時(shí)候的狀態(tài))。 ? ?(具體在下面運(yùn)算符演示)
加號(hào)的作用:
兩個(gè)字符串用加號(hào)連接吁脱,起到的作用是連接這兩個(gè)字符串桑涎。
兩個(gè)數(shù)值用加號(hào)連接,加號(hào)起到的作用是運(yùn)算符的作用兼贡。
加號(hào)連接的兩個(gè)直接量中有一個(gè)是字符串攻冷,加號(hào)的作用是連接。
加插:
判斷數(shù)據(jù)類型:
typeof:判斷數(shù)據(jù)類型遍希。
用法1:typeof(直接量/變量)
用法2:typeof 直接量/變量 ? ? ? 相對(duì)于用法1是少了括號(hào)
變量:
變量:是用來存儲(chǔ)數(shù)據(jù)的(就是儲(chǔ)存數(shù)據(jù)的一塊內(nèi)存) ? / ? ? ?內(nèi)存是電腦的一個(gè)儲(chǔ)存位置(斷電以后會(huì)清空)
使用瀏覽器輸出我們自己輸入的內(nèi)容:
聲明變量:
var a; ? ? ? ? ? ?(var為聲明變量的關(guān)鍵字孵班,a為變量名)
給變量賦值:= 等號(hào)
a="123"; ? ? ?(等號(hào)為賦值運(yùn)算符)
注意:賦值運(yùn)算符起到的作用是將等號(hào)右邊結(jié)果賦值給等號(hào)左邊的變量涉兽。
變量名的注意點(diǎn):
1、變量名只能由英文字母篙程,數(shù)字枷畏,下劃線以及$符號(hào)組成,并且數(shù)字不能放在名稱開頭虱饿。 (如果名稱帶有下劃線拥诡,那么后面就算直接跟數(shù)字也是可以的)
2触趴、變量的命名不能使用javascript中的關(guān)鍵字和保留字。(比如 : var var = 123;) ? ??(關(guān)鍵字:已經(jīng)被javascript內(nèi)部使用過的渴肉。/ ? 保留字:還沒有被javascript內(nèi)部使用冗懦,但是可能有一天會(huì)被使用到的。)
3仇祭、區(qū)分大小寫 (比如abc和ABC是不一樣的)
變量的類型:
這個(gè)變量中儲(chǔ)存的是什么樣的數(shù)據(jù)披蕉,那么這個(gè)變量就是什么樣的類型。? (儲(chǔ)的是string乌奇,變量就是string没讲,儲(chǔ)的是number,變量就是number)
變量之間的互相賦值以及變量可以和直接量一起輸出礁苗。
前面學(xué)了:string類型爬凑,number類型。下面還有其他類型:
boolean類型:
這個(gè)只有兩種取值:true(對(duì)) 和 false(錯(cuò)) 试伙。
作用:用于判斷條件的結(jié)果嘁信。
nudefined:
如果一個(gè)變量聲明了但是沒有賦值它的結(jié)果就是nudefined。 (nudefined在頁面上是不會(huì)報(bào)錯(cuò)的疏叨。)
在一些情況下它會(huì)報(bào)錯(cuò):is not defind
運(yùn)算符:
1潘靖、加號(hào):+ ? ??
如果加號(hào)兩邊都是字符串,那么加號(hào)的作用是連接考廉。
如果加號(hào)的兩邊都是數(shù)值秘豹,那么加號(hào)的作用是相加。
如果加號(hào)一邊是字符串昌粤,那么加號(hào)的作用是連接。
2啄刹、減號(hào):-
就是兩個(gè)數(shù)值之間的運(yùn)算涮坐。
NaN:(not a number):非數(shù)字,作用:用來表示數(shù)值的一種不正常的狀態(tài)誓军。? ? (一般情況下會(huì)在計(jì)算出現(xiàn)錯(cuò)誤的時(shí)候出現(xiàn)袱讹。)
判斷當(dāng)前的數(shù)據(jù)是否是NaN的關(guān)鍵字:IsNaN (是一個(gè)非數(shù)字)
如果結(jié)果是非數(shù)字:結(jié)果是: ?true
如果結(jié)果是數(shù)字:結(jié)果是: ?falsse
3、乘法:*
就是兩個(gè)數(shù)值之間相乘昵时。
4捷雕、除法:/
就是兩個(gè)數(shù)值之間相除。
5壹甥、取余(取模):%
就是兩個(gè)數(shù)值之間的操作救巷。
6帽哑、括號(hào):()
改變運(yùn)算符的優(yōu)先級(jí)。
復(fù)雜運(yùn)算:
math對(duì)象:
作業(yè):
JS作用
驗(yàn)證表單(以前的網(wǎng)速慢)
頁面特效(PC端的網(wǎng)頁效果)
移動(dòng)端(移動(dòng)web和app)
異步和服務(wù)器交互(AJAX)
服務(wù)端開發(fā)(nodejs)
瀏覽器工作原理
User Interface ?:用戶界面叹俏,我們所看到的瀏覽器
Browser engine ?:瀏覽器引擎妻枕,用來查詢和操作渲染引擎
Rendering engine? :渲染引擎,用來顯示請(qǐng)求的內(nèi)容粘驰,負(fù)責(zé)解析 HTML佳头、CSS
Networking ?:網(wǎng)絡(luò),負(fù)責(zé)發(fā)送網(wǎng)絡(luò)請(qǐng)求
JavaScript Interpreter ?: (解析者)JavaScript解析器晴氨,負(fù)責(zé)執(zhí)行JavaScript的代碼
UI Backend ?:UI后端康嘉,用來繪制類似組合框和彈出窗口
Data Persistence ?:(持久化)數(shù)據(jù)持久化,數(shù)據(jù)儲(chǔ)存 cookie籽前、HTML5中的sessionStorage