javascript
一、 前言
- JS 是一個(gè)腳本語言
- JS是web的編輯語言
- 經(jīng)常理解為 html-結(jié)構(gòu)、css-樣式、js-行為
- js可以寫html逆日、也可以寫css、但是主要是用來渲染頁面妨蛹,負(fù)責(zé)頁面和數(shù)據(jù)之間的傳遞和顯示屏富,以及編輯功能....
二、JS基礎(chǔ)
1.使用
和css差不多蛙卤,js有兩種使用方式
1.內(nèi)部js
在html的底部
<html>
<body><body/>
<script>js代碼</script>
</html>
2.外部引入
<script src="demo.js"></script>
2.輸出
1.彈框 alert
內(nèi)部js
<script>
//寫js代碼
alert('js第一天');
</script>
2.外部js里面直接寫代碼
alert('哈哈哈');
3.寫到html上 document.write
<script>
document.write('床前明月光');
document.write('<br>');
document.write('疑是地上霜');
</script>
4.innerHTML寫到html內(nèi)里面可以寫html的標(biāo)簽狠半,顯示的時(shí)候顯示的是標(biāo)簽內(nèi)的東西。
innerText寫到標(biāo)簽里面,如下所示會(huì)顯示包含標(biāo)簽的一塊
app我們稱為節(jié)點(diǎn),通過節(jié)點(diǎn)然后把內(nèi)容寫到該節(jié)點(diǎn)的地方
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
</div>
<p id="app2">
</p>
<script>
// innerHTML
app.innerHTML = '<span class="border: 1px solid">兩行白鷺上青天</span>';
// innerText
app2.innerText = '<span class="border: 1px solid">兩行白鷺上青天</span>';
</script>
</body>
</html>
5.寫到控制臺(tái) 瀏覽器F12調(diào)出控制臺(tái)console
console.log('今天天氣很好');
- 變量
1.變量
變量一個(gè)可變的量颤难,用來儲(chǔ)存數(shù)據(jù)
聲明一個(gè)變量用var
var 變量名;
var num; 這個(gè)時(shí)候num是個(gè)變量
變量賦值 = 賦值符號(hào) num = 1; 這個(gè)時(shí)候num等于1
2.關(guān)鍵字
一些語言以及規(guī)定意義的詞比如function
3.標(biāo)識(shí)符
js嚴(yán)格區(qū)分大小寫
命名規(guī)范:
字母 $ _ 開頭
第一個(gè)單詞小寫神年,后面的單詞第一個(gè)字母必須大寫
4.小總結(jié)
一、變量
* 變量是什么行嗤,有什么用
* 聲明變量
* 賦值
二已日、js一些語法和概念
1. 區(qū)分大小寫(html不區(qū)分大小寫)
2. 標(biāo)識(shí)符(比如變量名稱等)
* 以字母、下劃線栅屏、$開頭
* 其他字符可以是字母飘千、下劃線、$或數(shù)字
* 駝峰式:小寫字母開頭,第二個(gè)打次首字母大寫
3. 注釋
* 單行注釋
* 多行注釋
4. 關(guān)鍵字和保留字
* 關(guān)鍵字:系統(tǒng)在使用
* 保留字:系統(tǒng)將來可能用到
* 不能作為標(biāo)識(shí)符來使用
* 用來作標(biāo)識(shí)符就會(huì)報(bào)錯(cuò)
三栈雳、變量有哪些類型
1. 數(shù)字 Number類型
* 整數(shù)
* 小數(shù)
* 最大值和最小值
* NAN
2. typeof 判斷變量的類型
3. String類型 字符串
4. Boolean類型 true和false
5. Undifined類型 undefined
* 用來表示聲明了變量但未初始化(賦值)
6. Object類型
* 普通對(duì)象(無序集合)
* 數(shù)組(特殊對(duì)象)
7. Null類型 null
* 聲明一個(gè)變量準(zhǔn)備用來存儲(chǔ)對(duì)象
四护奈、變量的類型判斷
* 基本數(shù)據(jù)類型(簡單數(shù)據(jù)類型) Undefined、Null哥纫、Boolean霉旗、Number和String
* 引用數(shù)據(jù)類型(復(fù)雜數(shù)據(jù)類型) object,array他們的屬性或者成員可以包含簡單數(shù)據(jù)類型
5.數(shù)據(jù)類型
5個(gè)基本數(shù)據(jù)類型
1.數(shù)組類型 Number
數(shù)字 NaN
2.字符串類型 String
' ' 或 'saf'
3.布爾類型 Boolean
true 或 false
4.undefinde 未定義
5.null 空
2個(gè)引用數(shù)據(jù)類型
1..數(shù)組類型Array
var 數(shù)組名 = [ ]
var 數(shù)組名 = [數(shù)組值]
var 數(shù)組名 = [ {object}]
2..對(duì)象類型Object
var 對(duì)象名 = { }
var 對(duì)象名 = new object
var 對(duì)象名 = { 屬性(變量名)=值(各種類型) }
NULL和Array的數(shù)據(jù)類型都是Object
6.運(yùn)算符
和數(shù)學(xué)的運(yùn)算符一致
加 +
減 -
乘 *
除 /
取余 %
7.關(guān)系運(yùn)算
1.if判斷語句
if(條件語句 (變量或運(yùn)算)){執(zhí)行代碼}else{執(zhí)行語句}
如果滿足就干嘛,否者就干嘛
if(!null){return:"哈"}else{return:"切"}
如果不是空就返回 哈,否者返回 切
2.賦值運(yùn)算符和逗號(hào)運(yùn)算符
賦值運(yùn)算符 = 用于給變量賦值
復(fù)合運(yùn)算符:
+= a += 10; => a=a+10
-= a -= 2 ; => a=a-2
*= a *= 5; => a=a*5
/= a /= 3 => a=a/3
逗號(hào)運(yùn)算符 , 用于簡潔聲明變量
var a,b = 10 ; 聲明a,b變量并賦值10
3.一元運(yùn)算
自加運(yùn)算符 ++
++i 先自加1再參與計(jì)算
i++ 先參與計(jì)算再自加1
負(fù)號(hào)運(yùn)算符 -
直接給變量取負(fù)值
自減運(yùn)算符 --
--i 先自減1再參與計(jì)算
i-- 先參與計(jì)算再自減1
4.邏輯運(yùn)算
邏輯非 厌秒!
取相反的值 先用布爾進(jìn)行判斷读拆,會(huì)涉及類型轉(zhuǎn)換,隱式和顯式轉(zhuǎn)換
邏輯與&&
布爾類型情況下 只要有一個(gè)false就不會(huì)檢查后面的鸵闪,結(jié)果就是false
非布爾情況下 判斷第一個(gè)變量的值(先進(jìn)行隱式布爾轉(zhuǎn)換)若第一個(gè)為true取后面false的變量值檐晕,若第一個(gè)為false取第一個(gè)變量的值
實(shí)際應(yīng)用里的小技巧
// 下面用這個(gè)特性來檢測(cè)這個(gè)變量有沒有值和屬性
var cat = false;
console.log(cat && cat.name);
邏輯或 ||
布爾情況下,條件里滿足一個(gè)就為true蚌讼,都不滿足為false
非布爾情況下棉姐,在條件里找true,值都取第一個(gè)為true的值,若沒有true則取最后一個(gè)的值
// 小技巧啦逆,用于不確定有沒有給值,先設(shè)置一個(gè)默認(rèn)值
var date;
var dater = date || '2019-2-15';
console.log(dater);
擴(kuò)展 多個(gè)運(yùn)算在一起的情況下
/**
在下列的算式里笛洛,看似很復(fù)雜,實(shí)際上可以分成兩大部分||左右進(jìn)行判斷夏志,
如果前者為false再算后面的,
而后面的關(guān)系運(yùn)算符==也可以分成左右兩邊進(jìn)行計(jì)算
得出結(jié)論苛让,計(jì)算優(yōu)先級(jí)之前得看清全盤沟蔑,最后關(guān)鍵是賦值運(yùn)算那
*/
// 計(jì)算優(yōu)先級(jí):()=> 自加減 => 算術(shù)運(yùn)算 => 關(guān)系運(yùn)算(比較運(yùn)算)=> 邏輯運(yùn)算=> 賦值運(yùn)算;
var sum = 20 + i++ + 'abc' || 123 - ++i + ++j + ++j + '123' == 123 * 2 / 4 ;
5.類型轉(zhuǎn)換
隱式轉(zhuǎn)換
在條件語句為一個(gè)變量時(shí)出現(xiàn)
先把變量轉(zhuǎn)換為布爾類型,true執(zhí)行else之前的狱杰,false執(zhí)行else之后的
空瘦材、0、undefinde仿畸、NaN食棕,各類數(shù)據(jù)類型意義上為無的都為false,否者就為true
顯式轉(zhuǎn)換
判斷變量的類型 typeof 變量名
Number(變量名); 除了數(shù)字和空以及布爾其他全為NaN
Boolean(變量名); !!Boolean(變量名) 空错沽、0簿晓、undefinde、NaN千埃,各類數(shù)據(jù)類型意義上為無的都為false憔儿,否者就為true
String(變量名); 全部加上引號(hào)變成字符串然后(+)連接起來
Object(變量名);基本不進(jìn)行轉(zhuǎn)換因?yàn)閷?duì)象可以把所有類型都包含