快捷鍵:win+v查看剪切板 ;Ctrl+右箭頭 跳過一個(gè)單詞;Ctrl+回車 換行
一、JavaScript介紹
通常是運(yùn)行在瀏覽器的編程語言
可以實(shí)現(xiàn)人機(jī)交互效果,提供邏輯思維能力
作用:
服務(wù)端編程、數(shù)據(jù)交互(獲取后端數(shù)據(jù)、渲染到前端)、表單驗(yàn)證、網(wǎng)頁特效(動(dòng)畫效果)、監(jiān)聽用戶行為
(A)組成
(一)ECMAscript(規(guī)范|規(guī)則)
規(guī)定了js基礎(chǔ)語法核心知識(shí):語言法律
例如:創(chuàng)建變量、分支語句、循環(huán)語句、對象等
(二)Web APIs(網(wǎng)頁應(yīng)用接口 | 可操作的實(shí)體對象)
(1)DOM:document object model
文檔對象模型
實(shí)體化了一個(gè)對象叫document,整個(gè)HTML頁面就是一個(gè)文檔
(2)BOM:browser object model
操作瀏覽器
實(shí)體化了一個(gè)瀏覽器window對象,整個(gè)網(wǎng)頁
(B)、JavaScript書寫位置
內(nèi)聯(lián)(行內(nèi)樣式)、內(nèi)部、外部

內(nèi)部樣式:應(yīng)該寫在</body>標(biāo)簽上面。(瀏覽器從上至下逐行解析代碼)
因?yàn)閖s可以去控制元素,所以應(yīng)該寫在所有的HTML標(biāo)簽元素之后
外部樣式:通過src引入HTML頁面中
但是<script>標(biāo)簽不要寫內(nèi)容,會(huì)被忽略
(C)、JavaScript注釋
1、單行注釋
符號(hào)://
快捷鍵:ctrl+/
2、塊注釋
符號(hào):/* */
(3)、JavaScript結(jié)束符
1、結(jié)束符
■ 代表語句結(jié)束
■ 英文分號(hào) ;
■ 分號(hào)可寫可不寫,要么都寫,要么都不寫,建議寫分號(hào)
■ 換行符(回車)會(huì)被識(shí)別為結(jié)束符
(D)、JavaScript輸入輸出法
alert()和prompt()會(huì)阻塞主線程
1、輸出方式
■ alert(要彈出的內(nèi)容);里面不可以寫多個(gè)
■ document.write("要輸出的內(nèi)容");可以寫多個(gè)
■ console.log('控制臺(tái)打印');console控制臺(tái).log日志方法,可以寫多個(gè)
2、輸入
■ prompt('提示文字');
二、變量
變量是計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的容器(盒子)| 是內(nèi)存中的地址空間
(A)變量聲明方式
1、語法: let關(guān)鍵字 變量名
2、變量賦值:變量名 = 數(shù)據(jù)
3、變量值的修改:變量名 = 數(shù)據(jù)
4、聲明多個(gè)變量:let age = 18,uname = '劉亦菲';中間以逗號(hào)隔開
注意:
(1)聲明變量的同時(shí)可以進(jìn)行賦值,例如:let age = 18;
(2)變量名不能重復(fù)
(3)名詞解釋:
關(guān)鍵字:系統(tǒng)內(nèi)部已經(jīng)定義好的詞匯,
字面量:字面上,所見即所得的 一個(gè)數(shù)據(jù)
(B)變量本質(zhì)
內(nèi)存:計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的地方,相對于一個(gè)大空間
變量:是程序在內(nèi)存中申請的一塊用來存數(shù)據(jù)的小空間(內(nèi)存中的一個(gè)地址空間)
(C)變量名命名規(guī)范與規(guī)則
1、規(guī)則
▲ 不能使用關(guān)鍵字
▲ 特殊字符:_下劃線和$
▲ 不能以數(shù)字開頭
▲ 可以有數(shù)字、字母
2、規(guī)范
▲ 起名要有意義
▲ 遵循小駝峰命名法

三、數(shù)據(jù)類型
js數(shù)據(jù)類型分為兩大類:
基本數(shù)據(jù)類型(簡單數(shù)據(jù)類型),引用數(shù)字類型(復(fù)雜數(shù)字類型)

(一)基本數(shù)據(jù)類型
1、數(shù)字類型number
整數(shù)、小數(shù)、負(fù)數(shù)
2、字符串string
單引號(hào)' ' 、雙引號(hào)" " 、反引號(hào) `` (esc鍵下面)
△ 必須成對使用
△ 單雙引號(hào)可以互相嵌套使用,前提是必須交替使用
△ 自己嵌套自己時(shí),必須使用轉(zhuǎn)義符號(hào)‘\’
△ 反引號(hào)中間可以直接用回車的
3、拼接字符串string
語法:字符串+字符串
數(shù)據(jù)${變量}
模板字符串

4、布爾類型(boolean)
true 真 false 假
用來判斷
5、未定義(undefined)
沒有初始化,沒有開辟內(nèi)存空間

檢測開發(fā)場景,通過值是否是undefined來判斷傳遞過來了沒
6、null (空類型)
賦值了,初始化了,只是值叫做空
代表empty變量為 空數(shù)據(jù)
(二)檢測數(shù)據(jù)類型
1、JS是弱數(shù)據(jù)類型 ,變量到底屬于那種類型,只有賦值之后,我們才能確認(rèn)
JavaScript是強(qiáng)數(shù)據(jù)類型,例如 int a = 3 必須是整數(shù)
02、通過typeof 關(guān)鍵字 來檢測變量類型
3、通過控制臺(tái)顏色看,可以看出數(shù)字型和布爾型顏色為藍(lán)色,字符串和undefined顏色為灰色
(三)類型轉(zhuǎn)換
使用表單、prompt獲取來的數(shù)據(jù)默認(rèn)是字符串類型的
1、隱式轉(zhuǎn)化
系統(tǒng)內(nèi)部自動(dòng)的進(jìn)行類型轉(zhuǎn)化
規(guī)則:
1、+ 號(hào)兩邊只要有一個(gè)是字符串,都會(huì)把另外一個(gè)轉(zhuǎn)成字符串;

2、顯式轉(zhuǎn)化
//1、Number(數(shù)據(jù))
console.log(Number("123"));
// 1.1 當(dāng)數(shù)據(jù)不能轉(zhuǎn)化為數(shù)字的時(shí)候,會(huì)返回NaN,not a number
console.log(Number("abc"));
// 1.2 NaN是一個(gè)數(shù)字類型
console.log(typeof Number("abc"));
// 2、parseInt(數(shù)據(jù))
// 作用:解析為 整數(shù)
console.log(parseInt("1.23"));
// 3、parseFloat(數(shù)據(jù))
// 作用:可以保留小數(shù)點(diǎn)
console.log(parseFloat("1.233"));
轉(zhuǎn)換為字符型:
String(數(shù)據(jù))、變量.toString(進(jìn)制)
// 字符串轉(zhuǎn)化
// 1.string(數(shù)據(jù))
console.log(String("321"));
console.log(String(123));
console.log(String(true));
console.log(String(undefined));
console.log(String(null));
// 2.變量.toString(進(jìn)制);進(jìn)制不寫,默認(rèn)為十進(jìn)制
// 需要一個(gè)變量
// 數(shù)字.toString() 會(huì)報(bào)錯(cuò),需要變量
let a = 123;
console.log(a.toString());
補(bǔ)充知識(shí):
parseInt() parseFloat()
【parse解析的意思: 只要傳入的數(shù)據(jù)是以數(shù)字開頭的,就能解析成功,返回值為第一個(gè)數(shù)字直到碰到非數(shù)值為止; 比如 parseInt("123aa") ;返回 123】
Number() : 不能解析,有非數(shù)字就返回NaN
四、常見錯(cuò)誤
1、Uncaught ReferenceError: age is not defined( age變量沒有定義過)
2、Uncaught SyntaxError: Identifier 'age' has already been declared (提示 “age”已經(jīng)聲明)
3、Uncaught SyntaxError: missing ) after argument list (提示 參數(shù)少了 ))