2018-09-19 JS類型轉(zhuǎn)換與運(yùn)算符

一. 數(shù)據(jù)類型轉(zhuǎn)換

1、強(qiáng)制類型轉(zhuǎn)換
parseInt : 將數(shù)字或者字符串轉(zhuǎn)化整形
parseFloat: 將數(shù)字或者字符串轉(zhuǎn)化為浮點(diǎn)型。如果轉(zhuǎn)化的內(nèi)容結(jié)果是整形,那么結(jié)果就是整形,不會(huì)是浮點(diǎn)型。
Number('內(nèi)容'):結(jié)果只有兩種一種是數(shù)字類型,一種是NaN。只要內(nèi)容中有一個(gè)不是數(shù)字的字符,那么結(jié)果就是NaN。
String: 將內(nèi)容轉(zhuǎn)化為字符串類型。
當(dāng)時(shí)用string轉(zhuǎn)化null ,undefined,布爾值的時(shí)候會(huì)直接將這個(gè)原始的數(shù)據(jù)類型轉(zhuǎn)化為字符串。
Boolean:把內(nèi)容轉(zhuǎn)化成布爾值。 把任何內(nèi)容轉(zhuǎn)換成true或者false。

轉(zhuǎn)為布爾值為false的情況:
undefined
null
false
0
NaN
''或者"" 空字符串

總結(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。

2、隱式類型轉(zhuǎn)化:
判斷里面: 結(jié)果轉(zhuǎn)化為布爾值。
具有字符串的加法:兩邊都要轉(zhuǎn)化為字符串。就是字符串的拼接。
數(shù)字與字符串比較大?。鹤址D(zhuǎn)化為數(shù)字。
減法運(yùn)算的時(shí)候,字符串要轉(zhuǎn)化為數(shù)字。
技巧:快速的實(shí)現(xiàn)字符串轉(zhuǎn)化為數(shù)字。減0運(yùn)算。

二.運(yùn)算符號(hào)

1、算術(shù)運(yùn)算符
加法運(yùn)算符: 數(shù)字的加法 , 字符串的加法。
數(shù)字的加法就是簡(jiǎn)單的數(shù)字相加,要求加號(hào)兩邊都是數(shù)值類型。
字符的加法是字符串拼接,只要加好兩邊有一邊是字符串,那么這個(gè)運(yùn)算就是字符串的拼接。(字符串必須是放在引號(hào)里的)。
減法運(yùn)算符: 數(shù)字的減法,會(huì)進(jìn)行隱式類型轉(zhuǎn)化,
如果減號(hào)兩邊有一邊不是數(shù)字,那么會(huì)自動(dòng)轉(zhuǎn)化為數(shù)字類型。
乘法(*)與除法(/):就是簡(jiǎn)單的數(shù)字運(yùn)算。
JS里面除法運(yùn)算的除數(shù)是可以為0。結(jié)果是無(wú)窮。Infinity
取余(%):余數(shù)運(yùn)算。就是除法運(yùn)算在得到結(jié)果為整數(shù)的情況下,被除數(shù)剩下的值。
余數(shù): 5 2 2 ----1 5%2 = 1
10 3 3 ----1 10%3 = 1
取余運(yùn)算的符號(hào)只與被除數(shù)有關(guān),被除數(shù)是什么符號(hào),余數(shù)就是什么符號(hào)。
絕對(duì)值: 某一個(gè)數(shù)字的正數(shù)值。
正數(shù)的絕對(duì)值就是本身,負(fù)數(shù)的絕對(duì)值是相反數(shù),0的絕對(duì)值就是0.

Math.abs() 獲取絕對(duì)值。
Math.pow() 次方運(yùn)算
Math.random()隨機(jī)數(shù)

雖然浮點(diǎn)數(shù)也能夠進(jìn)行取余運(yùn)算,但是極度不精確。建議不要使用。

案例: 用JS實(shí)現(xiàn)表格的各行變色。

自增于自減運(yùn)算:
i++: 對(duì) i 加一然后結(jié)果賦值給 i 。 和i= i+1操作一樣。
i--: 對(duì) i 減一然后結(jié)果賦值給 i 。 和i= i-1操作一樣。
++i: 對(duì) i 加一然后結(jié)果賦值給 i 。 和i= i+1操作一樣。
--i: 對(duì) i 減一然后結(jié)果賦值給 i 。 和i= i-1操作一樣。
區(qū)別:
如果自增自減運(yùn)算參與其他運(yùn)算,那么后加加要先參加運(yùn)算,然后在自增或者自減。前加加先自增或者自減,然后再參與運(yùn)算。

乘方運(yùn)算(): 8^2
3
2 = 9
賦值運(yùn)算: =
var a = 1;
a = a+2; ===> a += 2;
+=
-=
*=
/=
%=
2、比較運(yùn)算符
< 小于號(hào) > 大于號(hào) >= <=
== 判斷值是否相同
=== 判斷值與類型是否相同
!= 判斷值是否不同
!== 判斷不全等。
這些比較運(yùn)算符一般都是使用需要判斷的地方,比如說(shuō)if,while等小括號(hào)里面,返回值一定是一個(gè)布爾值。
如果是數(shù)字與字符串進(jìn)行比較,那么字符串會(huì)自動(dòng)的轉(zhuǎn)化數(shù)字進(jìn)行比較。
如果是兩個(gè)字符串進(jìn)行比較,那么先比較第一個(gè)字符,第一個(gè)字符大的字符串大,第一個(gè)字符相同再比較第二個(gè)字符。
字符大小是按照Unicode編碼確定的。

Unicode編碼:Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼、單一碼)是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),包括字符集、編碼方案等。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。
NaN與任何值比較都是false。

3、邏輯運(yùn)算符
&& 與 , 符號(hào)兩邊的條件同時(shí)符合才會(huì)返回true
|| 或 , 符號(hào)兩邊只要有一邊符合條件就會(huì)返回true
! 非 , 取反,true轉(zhuǎn)為false,false轉(zhuǎn)為true。
短路運(yùn)算:
當(dāng)邏輯判斷操作前面的運(yùn)算已近得出最終結(jié)果的時(shí)候,后面的操作就不在執(zhí)行。具體指:或操作的第一個(gè)判斷返回true,與操作的第一個(gè)判斷返回false。
var i = 10;
if(4>2 || 10 > ++i){
console.log(i)
}

4、三元運(yùn)算符。
三元:三個(gè)操作數(shù)
自增,自減:一元操作符 。 i++
== , > :二元操作符 。 a >b ;
?:
條件?操作1:操作2;
類似于:
if(條件){
操作1;
}else{
操作2;
}
a>10?console.log(a):console.log(10);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容