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

最近開始倒回去看js紅寶書啦。這篇是1-5章的一些筆記。對(duì)于我這種之前只看了w3school和自己摸索了一下函數(shù)的人來說還有細(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)此問題)。故避免使用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ù)字開頭的字符串例如'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ù)來指定轉(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)過轉(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ù)的問題谒麦,定義時(shí)可以不寫參數(shù),通過arguements數(shù)組調(diào)用哆致。arguements數(shù)組還具有一個(gè)length屬性用來判斷輸入的參數(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ù)制來說摊阀,一個(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è)無效,會(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開始復(fù)制闻镶,slice(1甚脉,4)表示從位置1開始復(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()從尾部開始查找庄撮,找不到都返回-1。查找過程會(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è)列出來。當(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)系作者
  • 序言:七十年代末修械,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子检盼,更是在濱河造成了極大的恐慌肯污,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吨枉,死亡現(xiàn)場(chǎng)離奇詭異蹦渣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)貌亭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門柬唯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圃庭,你說我怎么就攤上這事锄奢∈纾” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵拘央,是天一觀的道長(zhǎng)涂屁。 經(jīng)常有香客問我,道長(zhǎng)灰伟,這世上最難降的妖魔是什么拆又? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮栏账,結(jié)果婚禮上帖族,老公的妹妹穿的比我還像新娘。我一直安慰自己挡爵,他們只是感情好竖般,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著了讨,像睡著了一般捻激。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上前计,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天胞谭,我揣著相機(jī)與錄音,去河邊找鬼男杈。 笑死丈屹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伶棒。 我是一名探鬼主播旺垒,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼肤无!你這毒婦竟也來了先蒋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤宛渐,失蹤者是張志新(化名)和其女友劉穎竞漾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窥翩,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡业岁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寇蚊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笔时。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仗岸,靈堂內(nèi)的尸體忽然破棺而出允耿,到底是詐尸還是另有隱情借笙,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布较锡,位于F島的核電站提澎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏念链。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一积糯、第九天 我趴在偏房一處隱蔽的房頂上張望掂墓。 院中可真熱鬧,春花似錦看成、人聲如沸君编。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吃嘿。三九已至,卻和暖如春梦重,著一層夾襖步出監(jiān)牢的瞬間兑燥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工琴拧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留降瞳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓蚓胸,卻偏偏與公主長(zhǎng)得像挣饥,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沛膳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容