javaScript高級(jí)程序設(shè)計(jì)筆記(一)

最近開(kāi)始倒回去看js紅寶書啦。這篇是1-5章的一些筆記。對(duì)于我這種之前只看了w3school和自己摸索了一下函數(shù)的人來(lái)說(shuō)還有細(xì)節(jié)需要補(bǔ)全~

1.當(dāng)變量賦值為null時(shí),typeof返回為object,如果變量未賦值,返回undefined
2.對(duì)浮點(diǎn)數(shù)進(jìn)行算數(shù)運(yùn)算的時(shí)候會(huì)產(chǎn)生精度不準(zhǔn)。如0.1+0.2=0.300...00004這樣會(huì)導(dǎo)致0.1+0.2==0.3判別式失效。(但0.15+0.25不會(huì)出現(xiàn)此問(wèn)題)。故避免使用0.1+0.2==0.3這樣的判別式
3.NaN與任何值都不相等,包括NaN自身。對(duì)應(yīng)函數(shù)isNaN(),當(dāng)處理對(duì)象為NaN和不能轉(zhuǎn)化為數(shù)值的參數(shù)(如字符串)時(shí),返回true
4.非字符轉(zhuǎn)換為數(shù)值:
①Number():將內(nèi)容非數(shù)字的字符串轉(zhuǎn)化為NaN,null返回0,undefined返回NaN,空時(shí)返回0
②parseInt():在Number的基礎(chǔ)上,面對(duì)數(shù)字開(kāi)頭的字符串例如'123abc',轉(zhuǎn)化為“123”,否則為NaN。面對(duì)“22.5”時(shí)轉(zhuǎn)為22(小數(shù)點(diǎn)被作為不可識(shí)別的內(nèi)容)。且可以為parseInt()指定第二個(gè)參數(shù),即轉(zhuǎn)換時(shí)使用的進(jìn)制
③parseFloat():在②的基礎(chǔ)上。當(dāng)面對(duì)“22.5.6”時(shí)轉(zhuǎn)為22.5(第二個(gè)小數(shù)點(diǎn)后被視為不可識(shí)別),且只能轉(zhuǎn)化十進(jìn)制。因而始終忽略先導(dǎo)的0.
5.除了null和undefined,其他的數(shù)據(jù)類型都有.toString()方法。方法內(nèi)可以設(shè)定參數(shù)來(lái)指定轉(zhuǎn)換時(shí)使用的進(jìn)制。當(dāng)不知道數(shù)據(jù)類型是不是null或者undefined時(shí),可以使用.String()方法。轉(zhuǎn)換后得到"null"與“undefined”
6.對(duì)于&&:


對(duì)于||

7.=====的區(qū)別在于,前者會(huì)將等號(hào)兩邊的內(nèi)容進(jìn)行轉(zhuǎn)化再比較,如‘55’==55為true,后者不經(jīng)過(guò)轉(zhuǎn)化直接比較,則為false;類似的還有null==undefined為true,但是===則為false
8.使用for in函數(shù)時(shí),循環(huán)的順序是不一定的,而且當(dāng)遍歷的內(nèi)容為null或者undefined時(shí)會(huì)自動(dòng)結(jié)束循環(huán)。
9.break和continue都會(huì)導(dǎo)致從循環(huán)中立即跳出。但是break會(huì)結(jié)束循環(huán)。continue只是跳出此次循環(huán),繼續(xù)下一次循環(huán)
10.一種switch的用法,給switch傳遞表達(dá)式true,因?yàn)槊總€(gè)case都會(huì)返回一個(gè)布爾值。這樣每個(gè)case都會(huì)執(zhí)行,知道找到匹配的值或者遇到default為止

11.定義函數(shù)的時(shí)候關(guān)于傳遞參數(shù)的問(wèn)題,定義時(shí)可以不寫參數(shù),通過(guò)arguements數(shù)組調(diào)用。arguements數(shù)組還具有一個(gè)length屬性用來(lái)判斷輸入的參數(shù)個(gè)數(shù)
如定義:
function a(){
alert('aaa'+arguements[0]+arguements[1]);
}
調(diào)用時(shí)可以用 a(1,2);使用
12.對(duì)于基本類型值的復(fù)制,一個(gè)變量的改變不會(huì)影響復(fù)制后的變量的值。但是對(duì)于引用類型值的復(fù)制來(lái)說(shuō),一個(gè)對(duì)象的改變對(duì)復(fù)制后的對(duì)象造成改變。因?yàn)樗麄儍蓚€(gè)變量引用的是同一個(gè)對(duì)象。
13.instanceof用于表示變量是個(gè)什么類型的對(duì)象,用法如
xxx instanceof Array,當(dāng)xxx為Array類型時(shí)返回true。但是instanceof對(duì)于基本類型值的檢測(cè)無(wú)效,會(huì)返回false,因?yàn)樗麄儾皇菍?duì)象
14.由于一般的sort函數(shù)的比較結(jié)果會(huì)因?yàn)樽址容^而得不到我們想要的結(jié)果。當(dāng)我們需要獲得排序結(jié)果時(shí)可以這樣使用:
function compare(value1,value2){
return value1-value2;
}
array.sort(compare);
15.concat()函數(shù):復(fù)制當(dāng)前數(shù)組并添加內(nèi)容,生成新數(shù)組。slice()函數(shù):slice(1)表示從位置1開(kāi)始復(fù)制,slice(1,4)表示從位置1開(kāi)始復(fù)制,到3結(jié)束。16.splice()函數(shù):可以往數(shù)組的中部插入項(xiàng)。
splice(0,2):分別代表起始位置和刪除的項(xiàng)數(shù);
splice(2,0,‘yellow’,‘red’):分別代表起始位置、要?jiǎng)h除的項(xiàng)數(shù)、要插入的項(xiàng)。
splice方法會(huì)返回一個(gè)數(shù)組,是從原始數(shù)組里刪除的項(xiàng)。
17.indexOf()方法從頭部返回項(xiàng)的位置,lastIndexOf()從尾部開(kāi)始查找,找不到都返回-1。查找過(guò)程會(huì)使用===操作符。方法內(nèi)包含兩個(gè)參數(shù),一個(gè)是查找的內(nèi)容,一個(gè)是從哪個(gè)位置查找(可選)
18.迭代方法有5種,每種方法接受兩個(gè)參數(shù):要在每一項(xiàng)上運(yùn)行的函數(shù)和(可選的)運(yùn)行該函數(shù)的作用域?qū)ο蟆绊憈his的值。傳入這些方法的函數(shù)會(huì)接受三個(gè)參數(shù):數(shù)據(jù)項(xiàng)的值,在數(shù)組中的位置和這個(gè)數(shù)組對(duì)象本身:function(item,index,array){}


19.reduce方法和reduceRight方法都是遍歷數(shù)組,一個(gè)從頭一個(gè)從尾。reduce(function(prev,cur,Index,array){ }),四個(gè)參數(shù)分別代表了前一項(xiàng),現(xiàn)在項(xiàng),索引值和數(shù)組對(duì)象。
20.個(gè)人理解apply()與call():修改函數(shù)的外部環(huán)境,設(shè)置函數(shù)體內(nèi)this對(duì)象的值。call與apply的區(qū)別在于傳入的參數(shù)數(shù)目不同。call必須將參數(shù)一個(gè)個(gè)列出來(lái)。當(dāng)你傳的是數(shù)組是用apply比較好
21.如果使用var num=false,這構(gòu)建的是一個(gè)基本數(shù)據(jù)類型。如果使用的var num = new Boolean(false),這構(gòu)建的是一個(gè)對(duì)象,當(dāng)判斷if(num)時(shí)會(huì)返回true,因?yàn)槿魏螌?duì)象轉(zhuǎn)換為布爾型都是true
22.toFixed(*)根據(jù)傳入的數(shù)字對(duì)數(shù)字進(jìn)行處理返回指定的小數(shù)點(diǎn)后位數(shù)

最后編輯于
?著作權(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)容