上一篇筆記里《javascript基礎(chǔ)入門(一)》埃元,我主要寫了js基本概念(特點(diǎn)症脂,組成谚赎,典型運(yùn)用)淫僻、js的使用、調(diào)試js代碼(常見js錯(cuò)誤類型)壶唤、js語法(六大數(shù)據(jù)類型)雳灵。適合零基礎(chǔ)入門的小伙伴~
這一期分享數(shù)據(jù)類型間的轉(zhuǎn)換和操作符,筆記內(nèi)容都是精華闸盔,一定要收藏悯辙!
數(shù)據(jù)類型間的轉(zhuǎn)換
數(shù)據(jù)類型間的轉(zhuǎn)換:
隱式轉(zhuǎn)換:程序自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型(坑)
弱類型:
1.變量聲明時(shí)不必限定數(shù)據(jù)類型,今后可能保存任何類型數(shù)據(jù)
2.數(shù)據(jù)類型間可以自動(dòng)類型轉(zhuǎn)換
僅考慮+號(hào):只要有字符串參與迎吵,一切類型都加" "變?yōu)樽址?/p>
如果沒有字符串躲撰,都轉(zhuǎn)為數(shù)字計(jì)算:
其中:true-->1 false-->0
強(qiáng)制轉(zhuǎn)換:程序員通過調(diào)用專門函數(shù)手動(dòng)轉(zhuǎn)換類型
????toString:x.toString()-->將x轉(zhuǎn)為字符串類型
????toNumber:Number(x)-->將任意類型轉(zhuǎn)為number類型
string 轉(zhuǎn) number 類型:
轉(zhuǎn)為整數(shù)
用法:var num=parseInt(“str”)
讀取字符串中的整數(shù)部分
1.從第一個(gè)字符向后讀。
2.如果碰到第一個(gè)數(shù)字字符击费,開始獲取數(shù)字
再次碰到不是數(shù)字的字符(包括小數(shù)點(diǎn))拢蛋,停止讀取
3.如果開頭碰到空格,忽略
4.如果碰到的第一個(gè)非空格字符荡灾,不是數(shù)字
說明不能轉(zhuǎn)-->NaN: not a number
?什么是NaN:不是數(shù)字(內(nèi)容)的數(shù)字(類型)
轉(zhuǎn)為浮點(diǎn)數(shù)
用法:var num=parseFloat(“str”)
讀取字符串中浮點(diǎn)數(shù)部分
用法和parseInt完全相同
唯一差別:parseFloat認(rèn)識(shí)小數(shù)點(diǎn)瓤狐,僅認(rèn)第一個(gè)
重點(diǎn):凡是從頁面上獲得的數(shù)據(jù),都是字符串批幌!必須先來轉(zhuǎn)換再計(jì)算
操作符
操作符:模擬人類運(yùn)算的特殊符號(hào)础锐,操作數(shù)據(jù)值的操作符。
算數(shù)運(yùn)算荧缘、模運(yùn)算皆警、遞增/遞減運(yùn)算、關(guān)系運(yùn)算截粗、邏輯運(yùn)算信姓、位移、賦值運(yùn)算绸罗、三目運(yùn)算
一意推、算數(shù)運(yùn)算:任意類型數(shù)據(jù)做“-”運(yùn)算,都會(huì)被轉(zhuǎn)為數(shù)字類型
如果有參數(shù)珊蟀,不能自動(dòng)轉(zhuǎn)為數(shù)字菊值,返回NaN
如果除數(shù)為0:Infinity-->無窮大?
例如:5/0
二、模運(yùn)算:被除數(shù)/除數(shù)育灸,取除不盡的余數(shù)
語法:被除數(shù)%除數(shù)
三腻窒、遞增/遞減運(yùn)算:
++:i++==>i=i+1;只要遇到對(duì)變量+1,就用i++
i++單獨(dú)用:++放前放后磅崭,效果一樣:i++==>++i儿子;
i++出現(xiàn)在表達(dá)式內(nèi)部:
? ?前++,先+1砸喻,再參與表達(dá)式
? ?后++柔逼,先用舊值參與表達(dá)式蒋譬。表達(dá)式之后+1。
四卒落、關(guān)系運(yùn)算:判斷大邢鄄蜂桶!條件判斷中使用儡毕,每個(gè)關(guān)系運(yùn)算符都返回一個(gè)布爾值。
結(jié)果:成立:true扑媚,不成立:false
自帶隱式類型轉(zhuǎn)換
字符串參與關(guān)系運(yùn)算:
從第一個(gè)字符開始腰湾,取出每個(gè)字符PK,采用unicode編號(hào)
??大寫永遠(yuǎn)小于小寫
關(guān)系運(yùn)算中:
任何類型和數(shù)字比較疆股,字符串轉(zhuǎn)為數(shù)字费坊,再比較
布爾類型參與關(guān)系運(yùn)算,始終轉(zhuǎn)為數(shù)字比較
先將參與判斷的數(shù)據(jù)旬痹,強(qiáng)轉(zhuǎn)為相同類型附井,再比較
undefined和null比較:
undefined類型,從null類型繼承來的?
undefined值被自動(dòng)轉(zhuǎn)換為null两残!所以u(píng)ndefined==null為true
"=="叫相等永毅。 在比較的時(shí)候可以轉(zhuǎn)自動(dòng)換數(shù)據(jù)類型
"=== "叫嚴(yán)格相等:不帶自動(dòng)類型轉(zhuǎn)換的相等比較!要求“類型”和“值”必須都相等人弓!才返回true。
typeof(x):判斷任意數(shù)據(jù)的類型? ? ? ?
記住:只要不確定比較的類型砚婆,又不希望自動(dòng)類型轉(zhuǎn)換時(shí)淆珊,就用===
例子:
NaN做==比較:NaN和任何數(shù)字做比較,永遠(yuǎn)返回false
isNaN(x):專門用來判斷一個(gè)數(shù)據(jù)是否是NaN
如果是NaN返回true健芭;如果不是NaN返回false
如果是數(shù)字返回false;如果不是數(shù)字返回true县钥,
只要不能自動(dòng)轉(zhuǎn)換為數(shù)字的,都返回true
只要能自動(dòng)轉(zhuǎn)換為數(shù)字的慈迈,都返回false
例子:
總結(jié):
1.普通數(shù)據(jù)若贮,先轉(zhuǎn)為相同類型,再比較吩翻。
2.undefined兜看,就用===
3.NaN,就用isNaN(x)
五、邏輯運(yùn)算:基于多組關(guān)系運(yùn)算狭瞎,得出1個(gè)結(jié)論
&&:而且
所有條件為true细移,才返回true;只有一個(gè)false就返回false熊锭。
||:或者
只要任意一個(gè)為true弧轧,就返回true雪侥;只要所有條件都為false時(shí),才返回false精绎。
!:非
顛倒true和false速缨,今后只要顛倒判斷結(jié)果,就直接用代乃!運(yùn)算符
短路邏輯:只要前一個(gè)判斷可以得出最終結(jié)論旬牲,則后續(xù)條件不執(zhí)行!一定要記住
一問:判斷是否是漢字的unicode范圍
一答:"\u4E00"&&"\u9FA5"
例子:
判斷n能否被m整除:n%m==0嗎搁吓?叫模運(yùn)算
六原茅、位移:
左移:n<<m 得n*(2的m次方)
右移:n>>m 得 n/(2的m次方)
例子:
七、賦值運(yùn)算:賦值運(yùn)算就是等號(hào)右邊表達(dá)式的結(jié)果
var x=y=z=10;
擴(kuò)展的賦值表達(dá)式:對(duì)已有數(shù)據(jù)計(jì)算同時(shí)堕仔,將結(jié)果再存回變量擂橘。
+=:i+=5; 等效于i=i+5;
何時(shí)使用:修改原變量值
八摩骨、三目運(yùn)算:根據(jù)不同條件通贞,動(dòng)態(tài)返回不同結(jié)果!
三目:至少需要3個(gè)表達(dá)式恼五。
語法:
一個(gè)條件昌罩,二選一:
條件 ? 當(dāng)條件滿足時(shí)返回值 : 當(dāng)條件不滿足時(shí)返回值
多個(gè)條件,多選一:
條件1唤冈?條件1滿足的值:
條件2峡迷?條件2滿足的值:
條件n?條件n滿足的值:
默認(rèn)值你虹;
例子1:一個(gè)條件绘搞,二選一
例子2:多個(gè)條件,多選一
注意:多個(gè)條件判斷傅物,后一個(gè)條件中不用包含否定前一個(gè)條件的關(guān)系判斷夯辖;因?yàn)椋M(jìn)入后一個(gè)條件隱含的條件就是前一個(gè)條件不滿足董饰。
常見題:
/未完待續(xù) 下期再會(huì).
歡迎關(guān)注微信公眾號(hào)【一文插畫】蒿褂,回復(fù)【資源】即可獲得學(xué)習(xí)資料~?“領(lǐng)干貨” 一起提升技能!未經(jīng)授權(quán)卒暂,不得轉(zhuǎn)載啄栓。