(`return false:終止運(yùn)行,開(kāi)始下面的運(yùn)行;`)
數(shù)據(jù)類型轉(zhuǎn)換
- 強(qiáng)制類型轉(zhuǎn)換
1.1 parseInt:將數(shù)字或者字符串轉(zhuǎn)化為整型。
1.2 parseFloat:將數(shù)字或者字符串轉(zhuǎn)化為浮點(diǎn)型,如果轉(zhuǎn)化的內(nèi)容結(jié)果是整型,那么結(jié)果就是整型,不會(huì)是浮點(diǎn)型。
1.3 Number(‘內(nèi)容’):結(jié)果只有兩種,一種是數(shù)字類型,一種是NaN,只要內(nèi)容里面有一個(gè)不是數(shù)字的字符,那么就是NaN;
1.4 String:將內(nèi)容轉(zhuǎn)化為字符串類型。當(dāng)使用string轉(zhuǎn)化null,undefined,布爾值的時(shí)候會(huì)直接將這個(gè)原始的數(shù)據(jù)類型轉(zhuǎn)化為字符串,
1.5 Boolean:把內(nèi)容轉(zhuǎn)化為布爾值,把任何內(nèi)容轉(zhuǎn)化為true或者false;
轉(zhuǎn)化布爾值為false的情況:
- undefined為false
- null為false
- false為false
- 0為false
- NaN為false
- “ ”或者空字符串為false
總結(jié):
如果是string類型,只要不是空字符,都會(huì)轉(zhuǎn)為true
number類型,只要不是0,即使是負(fù)數(shù),都會(huì)轉(zhuǎn)為true;
object類型,只要不是null類型,都會(huì)轉(zhuǎn)化為true。
undefined類型,都會(huì)轉(zhuǎn)換成false。
隱式類型轉(zhuǎn)換(自己轉(zhuǎn)換)
- 判斷里面:只要是判斷里面的結(jié)果都會(huì)轉(zhuǎn)化為布爾值;
- 具有字符串的加法:兩邊都要轉(zhuǎn)換為字符串,就是字符串的拼接。
- 字符串與數(shù)字比較大?。鹤址D(zhuǎn)化為數(shù)字,減法運(yùn)算的時(shí)候,字符串要轉(zhuǎn)化為數(shù)字;
- 遇到:
==,===,!=,!==就要知道要進(jìn)行隱式類型轉(zhuǎn)換了;
技巧:
快速的實(shí)現(xiàn)字符串轉(zhuǎn)化為數(shù)字,減0 運(yùn)算。
運(yùn)算符號(hào)
- 算術(shù)運(yùn)算符:
1.1 加法運(yùn)算符:數(shù)字的加法,簡(jiǎn)單的數(shù)字相加,要求加好兩邊都是數(shù)值類型,字符串的加法是字符串的拼接,只有加號(hào)兩邊,有一邊是字符串,那么這個(gè)加號(hào)就是字符串的拼接。(字符串必須是放在引號(hào)里面;)
1.2 減法運(yùn)算符:數(shù)字的減法,會(huì)進(jìn)行隱式類型轉(zhuǎn)化,如果減號(hào)兩邊有一邊不是數(shù)字,那么會(huì)自動(dòng)轉(zhuǎn)換為數(shù)字類型;
1.3 乘法與除法運(yùn)算符:就是簡(jiǎn)單的數(shù)字運(yùn)算,乘法是一個(gè)(*)號(hào),除法是(/);JS里面,除法運(yùn)算的除數(shù)是可以為0的,結(jié)果是無(wú)窮,也就是Infinity。
1.4 取余(余數(shù)運(yùn)算):就是除法運(yùn)算在得到結(jié)果為整數(shù)的情況下,被除數(shù)剩下的值。(%)取余符號(hào);取余運(yùn)算符號(hào)只與被除數(shù)有關(guān),被除數(shù)什么符號(hào),結(jié)果就是什么符號(hào),
1.5 絕對(duì)值:某一個(gè)數(shù)字的正數(shù)值。
Math.abs() 獲取絕對(duì)值;
Math.pow()次方運(yùn)算;
Math.random()獲取隨機(jī)函數(shù);
雖然浮點(diǎn)數(shù)也能夠進(jìn)行取余運(yùn)算,但是極度不精確,建議不使用。
- 自增與自減運(yùn)算:
2.1 I++:對(duì)i加1,結(jié)果賦值給i;和i=i+i的操作一樣;
2.2 i--:對(duì)i減1,結(jié)果賦值給i;和i=i-i的操作一樣;
2.3 ++i:對(duì)i加1,結(jié)果賦值給i;和i=i+i的操作一樣;
2.4 --i:對(duì)i減1,結(jié)果賦值給i;和i=i-i的操作一樣;
區(qū)別:如果自增自減運(yùn)算參與其他運(yùn)算,那么后加加要先參加運(yùn)算,然后再自增,或者自減;前加加先自增或者自減,然后
再參與運(yùn)算。
- 乘方運(yùn)算(**):例:3**2=9;
3.1 賦值運(yùn)算:=
var a=1; 給a賦值1;
a=a+2?a+=2;
-=
*=
/=
%=
- 比較運(yùn)算符:
> < >= <=
4.1==判斷值是否相同;
4.2===判斷值與類型是否相同;
4.3!=判斷值是否不同;
4.4!==判斷不全等;
這些比較運(yùn)算符一般都是使用在需要判斷的地方,比如`if`,`while`等小括號(hào)里面,返回值一定是個(gè)布爾值;
如果是數(shù)字與字符串進(jìn)行比較,那么字符串會(huì)自動(dòng)的轉(zhuǎn)化為數(shù)字進(jìn)行比較,如果是兩個(gè)字符串進(jìn)行比較,那么先比較第一個(gè)
字符,第一個(gè)字符大的那么第一個(gè)字符串大,如果第一個(gè)字符一樣大的話就比較第二個(gè)字符,字符大小是按照`unicode`
編碼確定的;
注意:
unicode編碼:文字的編碼;
NaN與任何值比較都是false;
- 邏輯運(yùn)算符:
5.1 && (與),符號(hào)兩邊的條件同時(shí)符合才會(huì)返回true;
5.2 || (或),符號(hào)兩邊只要一邊符合條件就會(huì)返回true;
5.3 !(非),取反,true轉(zhuǎn)為false,false轉(zhuǎn)為true;
- 短路運(yùn)算:
當(dāng)邏輯判斷操作前面的運(yùn)算已經(jīng)得出最終結(jié)果的時(shí)候,后面的操作就不存在了;具體指或操作的第一個(gè)判斷返回true,與
操作的第一個(gè)判斷返回false;
如:
Var i=10;
If(4<2 ||10> ++i){
Console.log(i)
}
- 三元(條件)運(yùn)算符:
6.1 三元:三個(gè)操作數(shù)
6.2 自增,自減:一元操作符;
6.3 ==,>,:二元操作符。a>b;
6.4 ?:條件?操作1:操作2 ;
(如果滿足條件就實(shí)行操作1,不滿足就實(shí)行操作2)
類似于下面:
if(條件){
操作1;
}else{
操作2;
}
a>10?console.log(a):console.log(10);
- innerHTML:
獲取標(biāo)簽內(nèi)部的所有內(nèi)容,可以獲取出標(biāo)簽里面的標(biāo)簽 - innerText:
獲取標(biāo)簽里面的內(nèi)容,不獲取標(biāo)簽;
<div><span>123</span></div>
innerHTML <span>123</span>
innerText 123
eval 能夠把一個(gè)字符串當(dāng)做表達(dá)式進(jìn)行計(jì)算;
程序的三大流程:
- 順序結(jié)構(gòu)
- 循環(huán)結(jié)構(gòu)
- 選擇結(jié)構(gòu)(
分支結(jié)構(gòu))
- 流程圖:
1.1 開(kāi)始和結(jié)束:圓角矩形,程序總是從開(kāi)始作為入口,從結(jié)束作為出口
1.2 過(guò)程:每一個(gè)步驟都是一個(gè)過(guò)程,過(guò)程是使用矩形表示的,過(guò)程只能有一個(gè)入口,一個(gè)出口。
1.3 判斷:里面是一個(gè)條件判斷,用菱形來(lái)表示,一個(gè)入口,多個(gè)出口。
- If結(jié)構(gòu)
2.1 單句if:- If(判斷語(yǔ)句)一句代碼:
如果符合if條件的結(jié)果語(yǔ)句只有一條,那么if后面的大括號(hào)可以省略;
- If(判斷語(yǔ)句)一句代碼:
等價(jià)于:
Var a=3;
if(a==1)console.log(a);
Console.log(10);
雖然這個(gè)很簡(jiǎn)潔,但是不介意使用,也就是說(shuō)即使只有一句代碼也要加上大括號(hào);
- 一般if:
If(判斷條件){
一組語(yǔ)句;
}
- 雙分支if
If(){
一組語(yǔ)句;
}else{
一組語(yǔ)句;
}
這個(gè)語(yǔ)句相對(duì)來(lái)說(shuō)比較麻煩,如果語(yǔ)句比較少的時(shí)候,可以使用,如果語(yǔ)句比較多,那么久轉(zhuǎn)化為一般if結(jié)構(gòu);
If(){
一組語(yǔ)句;
}else{
一組語(yǔ)句;
}
轉(zhuǎn)化成:
If(a==1){
}
If(!a=1){
}
- 多分支結(jié)構(gòu)if:
If(判斷){
}else if(判斷){
} else if(判斷){
}
switch結(jié)構(gòu):
不確定具體值得用if結(jié)構(gòu),確定具體值得,并且是有限個(gè)(`數(shù)據(jù)不能太多`)的時(shí)候用switch;
switch(判斷的值){
cass第一個(gè)值:
語(yǔ)句二
break;
cass得二個(gè)值
語(yǔ)句;
dreak
- default:
語(yǔ)句
break
}
break:為了跳出一個(gè)代碼塊,如果沒(méi)有break,那么swithch case代碼就繼續(xù)往下執(zhí)行,那么下面的case就不啟動(dòng)。
注意:switch參與判斷的值與case后面的值是全等判斷;
for循環(huán)結(jié)構(gòu)
for(初始化;判斷條件;改變循環(huán)判斷值){
}
如:
for(){
第二個(gè)循環(huán)的變量注意變化
for(){
}
}
while循環(huán)
初始化
while(判斷條件){
改變循環(huán)條件
}
比如:
var i=0;
while(i<100){
I++;
}
do while循環(huán):
do{
}while();
區(qū)別:while循環(huán)先判斷后運(yùn)行,不符合條件一次也不運(yùn)行,do while先運(yùn)行再判斷,如果不符合條件,至少運(yùn)行一次,
break與 continue:
- break:跳出代碼塊;結(jié)束循環(huán)
- continue:繼續(xù)執(zhí)行,結(jié)束本次循環(huán);
continue后面的不執(zhí)行了,直接跳出; - label語(yǔ)法:控制
break與continue,一般不使用,但是也有可能會(huì)遇到。
label _name(隨便取得名字):
for(){
label name;
continue name;
}