js 基礎(chǔ)知識(shí)隨筆

js 比較運(yùn)算, 如果字符串和數(shù)值比較會(huì)先將字符串轉(zhuǎn)為數(shù)值再進(jìn)行比較

如果是對(duì)象和字符串比較則會(huì)調(diào)用對(duì)象的valueOf()方法

null==undefined

js 中l(wèi)abel使用 提高性能

start:for(){

for(){

? ?break start;

}

}

js 垃圾回收

1、標(biāo)記清除

先將全部變量進(jìn)行標(biāo)記钱反,再取消現(xiàn)環(huán)境的變量及由變量引用的變量,再將沒有取消的變量清除分配的內(nèi)存

2剩檀、引用計(jì)數(shù)

在循環(huán)引用中容易造成內(nèi)存溢出

可手動(dòng)執(zhí)行垃圾回收

collectGarbage

確定占用最小的內(nèi)存使頁(yè)面擁有更好的性能铲汪,可以在變量使用后手動(dòng)至為null


js中 function和new function的區(qū)別

new function返回的是對(duì)象,當(dāng)function中有return的時(shí)候塑悼,new function返回的是對(duì)象,function根據(jù)return的類型不同返回的不同楷掉,如果返回的是對(duì)象則為對(duì)象如果返回的是字符串則為字符串,new function可獲取this對(duì)象厢蒜,function則不會(huì)如:



var a ={"AAA":"ssss''}

a.AAA與a["AAA"]區(qū)別,用中括號(hào)可以通過變量的方式訪問如 var keyName = "AAA" ,a[keyName],或者當(dāng)key為關(guān)鍵字或含有空格或.標(biāo)識(shí)等時(shí)用中括號(hào)獲取


js數(shù)組

Array.length 非只讀烹植,可以根據(jù)設(shè)置length動(dòng)態(tài)添加或修改數(shù)組尾值

數(shù)組棧的方式存儲(chǔ)斑鸦,后進(jìn)先出 last in first out

push 再數(shù)組后面添加新的元素

?pop 獲取最后一個(gè)元素

shift 獲取第一個(gè)元素

unshift 在數(shù)組最前面添加元素

concat 復(fù)制原數(shù)組后創(chuàng)建新的數(shù)組

slice 選擇性賦值新建新的數(shù)組,傳一個(gè)或兩個(gè)參數(shù)草雕,表明將要復(fù)制的原數(shù)組位置

splice 非常強(qiáng)大的方法巷屿,對(duì)數(shù)組任意位置進(jìn)行刪除,插入墩虹,更換

splice(0嘱巾,2)刪除數(shù)組前兩個(gè)元素

splice(2,0,"aa","bb","cc")在數(shù)組第二個(gè)位置后面诫钓,“刪除0個(gè)元素”旬昭,并在后面添加“aa”“bb”“”“cc”元素

splice(2,1,"aa","bb")在第二個(gè)元素后面,刪除1個(gè)元素并插入“aa”“bb”

數(shù)組的indexOf發(fā)現(xiàn)個(gè)有意思的尖坤,indexOf在查找匹配時(shí)遵循的是===稳懒,也就是說元素必須完全一致,包括了指向的地址如

var ob = {"aa":"aa"};

var arrTest1 =[ {"aa":"aa"}];

var arrTest2 =[ ob];

arrTest1.indexOf(ob);//-1

arrTest2.indexOf(ob);//0


數(shù)組的五大迭代方法 都是傳遞三個(gè)參數(shù)分別為慢味,節(jié)點(diǎn)元素场梆,節(jié)點(diǎn)位置,循環(huán)數(shù)組

every(function(value,index,arr){

//如果此函數(shù)對(duì)每一項(xiàng)都返回true纯路;則every方法返回true

})

some(function(value,index,arr){

//如果此函數(shù)對(duì)任意一項(xiàng)都返回true或油;則every方法返回true

})

forEach(function(value,index,arr){

//每一項(xiàng)都執(zhí)行該函數(shù),無(wú)返回值

})

filter(function(value,index,arr){

//過濾篩選將該函數(shù)返回true的值進(jìn)行filter返回(數(shù)組返回)

})

map?(function(value,index,arr){

//將此返回的返回值生成新的數(shù)組有map返回

})


reduce 縮小數(shù)組方法驰唬,傳遞四個(gè)參數(shù)顶岸,第一個(gè)數(shù)組值腔彰,第二個(gè)數(shù)組值,循環(huán)的位置辖佣,數(shù)組對(duì)象

每次迭代都會(huì)將結(jié)果作為第一個(gè)數(shù)組值傳遞到下一次迭代中

function 兩個(gè)屬性霹抛,length 獲取方法需要的參數(shù)個(gè)數(shù)


String 三個(gè)方法

slice(param1,param2)//第一個(gè)參數(shù)開始位置,第二個(gè)參數(shù)結(jié)束位置

subString(param1,param2)//第一個(gè)參數(shù)開始位置卷谈,第二個(gè)參數(shù)結(jié)束位置

substr(param1,param2)//第一個(gè)參數(shù)開始位置杯拐,第二個(gè)截取幾個(gè)

參數(shù)為負(fù)數(shù)時(shí) slice將參數(shù)與字符串長(zhǎng)度相加

subString 將負(fù)數(shù)都轉(zhuǎn)為0

substr 將第一個(gè)參數(shù)與字符串長(zhǎng)度相加,第二個(gè)參數(shù)轉(zhuǎn)為0

替換 js中的replace方法并沒有像java中replaceAll方法想要達(dá)到全部替換可以用正則/g

var hello = "hello word";

hello.replace(/o/g,'w');

也可以用一些特殊的字符序列

$1表示最新匹配到的字符串

var test = 'ABC,CBC,DBC';

test.replace(/(.BC)/g,'都是BC($1)');


replace第二個(gè)參數(shù)也可以傳方法世蔗,方法捕獲組的匹配項(xiàng)端逼,參數(shù)位置,原字符串

var str= 'abcdefg';

str.replace(/[a d&]/g,function(match,pos,str){console.log(str+'原字符串'+match);return '替換為'})


采用塊級(jí)作用于可以降低閉包占用的內(nèi)存問題污淋,減少命名沖突及減少作用域鏈

location.href

location.assign

location.replace區(qū)別

href實(shí)際上也是調(diào)用的assign顶滩,href和assign會(huì)產(chǎn)生歷史記錄,replace不會(huì)產(chǎn)生歷史記錄寸爆,也防止了gohistory


jQuery 對(duì)象和dom互相轉(zhuǎn)化

通過jQuery 獲取對(duì)象var jele = $('#elem')與dom獲取的對(duì)象不同礁鲁,

var delem = document.getElementById("elem"),因此兩者不能互用對(duì)象屬性及方法,

兩者互相轉(zhuǎn)換方式如下

jele[0] == delem

$(delem) == jele

h5 中innerHtml雖然很方便而昨,但多次使用會(huì)降低性能救氯,因?yàn)槊看问褂胕nnerHtml或outHtml就會(huì)創(chuàng)建一個(gè)新的解析器

在綁定事件中盡量用js綁定事件而不用html事件處理,這樣可以避免當(dāng)js沒有加載完用戶點(diǎn)擊造成當(dāng)js報(bào)錯(cuò)如

<input id="btn_show" type="button" onclick="showMsg()">

function showMsg(){

}

<input id="btn_show" type="button">

$("#btn_show").click(function(){

? ? ? ? showMsg();

})

未完待續(xù)歌憨。。墩衙。务嫡。。漆改。心铃。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挫剑,隨后出現(xiàn)的幾起案子去扣,更是在濱河造成了極大的恐慌,老刑警劉巖樊破,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愉棱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡哲戚,警方通過查閱死者的電腦和手機(jī)奔滑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來顺少,“玉大人朋其,你說我怎么就攤上這事王浴。” “怎么了梅猿?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵氓辣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我袱蚓,道長(zhǎng)钞啸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任癞松,我火速辦了婚禮爽撒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘响蓉。我一直安慰自己硕勿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布枫甲。 她就那樣靜靜地躺著源武,像睡著了一般。 火紅的嫁衣襯著肌膚如雪想幻。 梳的紋絲不亂的頭發(fā)上粱栖,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音脏毯,去河邊找鬼闹究。 笑死,一個(gè)胖子當(dāng)著我的面吹牛食店,可吹牛的內(nèi)容都是我干的渣淤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吉嫩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼价认!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起自娩,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤用踩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后忙迁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體脐彩,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年动漾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丁屎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旱眯,死狀恐怖晨川,靈堂內(nèi)的尸體忽然破棺而出证九,到底是詐尸還是另有隱情,我是刑警寧澤共虑,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布愧怜,位于F島的核電站,受9級(jí)特大地震影響妈拌,放射性物質(zhì)發(fā)生泄漏拥坛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一尘分、第九天 我趴在偏房一處隱蔽的房頂上張望猜惋。 院中可真熱鬧,春花似錦培愁、人聲如沸著摔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谍咆。三九已至,卻和暖如春私股,著一層夾襖步出監(jiān)牢的瞬間摹察,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工倡鲸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留供嚎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓峭状,卻偏偏與公主長(zhǎng)得像查坪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宁炫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • 基礎(chǔ)復(fù)習(xí)筆記 JS效果三要素: 時(shí)間 事件 運(yùn)動(dòng)軌跡(分步驟來實(shí)現(xiàn)先死后活法逐步來) (1)獲取元素 : getE...
    2e9a10d418ab閱讀 392評(píng)論 0 3
  • js簡(jiǎn)介 Js是一種基于事件和對(duì)象驅(qū)動(dòng)的解釋性、松散性的語(yǔ)言氮凝。 一切皆對(duì)象 javascript 布蘭登艾奇 ...
    塔庫(kù)納瑪哈哈閱讀 1,203評(píng)論 0 2
  • 第三章 類型羔巢、值和變量 1、存取字符串罩阵、數(shù)字或布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對(duì)象稱做包裝對(duì)象竿秆,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 633評(píng)論 0 1
  • 由于最近都在freecodecamp上刷代碼,運(yùn)用了很多JavaScript數(shù)組的方法稿壁,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 1,975評(píng)論 0 16
  • 總想寫本書幽钢,可是拿起筆不知道從哪寫起 碌碌無(wú)為 三兩成句 可能不如一時(shí)興起更起勁 只能慢慢積累成書。
    China虎男閱讀 206評(píng)論 0 0