Js

f上級作用域查詢,就看這個是在哪定義的



prototype call和apply



slice()就是對應(yīng)String的substring()版本,它截取Array的部分元素,然后返回一個新的Array:

vararr = ['A','B','C','D','E','F','G'];arr.slice(0,3);// 從索引0開始总寻,到索引3結(jié)束,但不包括索引3:

?['A', 'B', 'C']arr.slice(3);// 從索引3開始到結(jié)束: ['D', 'E', 'F', 'G']

注意到slice()的起止參數(shù)包括開始索引梢为,不包括結(jié)束索引渐行。

如果不給slice()傳遞任何參數(shù),它就會從頭到尾截取所有元素铸董。利用這一點(diǎn)祟印,我們可以很容易地復(fù)制一個Array:

vararr = ['A','B','C','D','E','F','G'];varaCopy = arr.slice();aCopy;// ['A', 'B', 'C', 'D', 'E', 'F', 'G']aCopy === arr;// false


splice(從幾開始,刪除幾位,添加新的元素)

pop()輸出函數(shù) 尾部并刪除. push()尾部添加

unshift()頭部添加, shift()頭部移除

JS中DOM

回流 重排 reflow: 當(dāng)前頁面的HTML結(jié)構(gòu)發(fā)生改變(add,delete,position....) 瀏覽器都血藥重新的計算一遍最新的DOM結(jié)構(gòu),沖新的對當(dāng)前的頁面進(jìn)行render ? 耗性能~~~JS優(yōu)化問題 盡量減少回流

重繪:某一個元素的部分樣式發(fā)生改變了(背景顏色),瀏覽器只血藥重新的渲染當(dāng)前的元素即可

1.動態(tài)生成

優(yōu)勢:把需要動態(tài)綁定的內(nèi)容一個個的追加到頁面中,對又來的元素沒有任何的影響

弊端:每當(dāng)創(chuàng)建一個li,我們就添加到頁面中. 每次都觸發(fā)回流

2.字符串拼接

優(yōu)勢:實(shí)現(xiàn)吧內(nèi)容拼接好,最后統(tǒng)一添加到頁面當(dāng)中,只引發(fā)一次回流

弊端:拼接后 ?原先的li 事件效果 消失.

3.文檔碎片

var frg = document.createDocumentFragment();


數(shù)據(jù)類型檢測

//typeof 檢測數(shù)據(jù)類型

//instanceof 檢測某一個實(shí)例: 只要在當(dāng)前實(shí)例的原型鏈上,其檢測結(jié)果都是true

//constructor 構(gòu)造函數(shù) 作用和instanceof 非常的相似 但是他可以處理基本數(shù)據(jù)類型

//Object 對象數(shù)據(jù)的基類? 引用數(shù)據(jù)類型 內(nèi)置類(函數(shù)數(shù)據(jù)類型 prototype)

//Object.prototype.toString.call()


odiv -- HTMLdivElement.prototype -- HTMLeLEMENT.prototype -- Element.prototype -- ?Node.prototype -- EventTarget.prototyp -- Object.prototype


function Fn(){}

var ary = new Arry;

Fn.prototype = ary;

var f = new Fn;


f -- Fn.prototype -- Array.prototype -- Object.prototype

在類的的原型鏈上檢測不一定正確

數(shù)據(jù)類型null和undefined 但是瀏覽器把這兩個類保護(hù)起來了,不予許外面訪問使用

Object.prototype.toString.call()

Object.prototype.toString 原型上的方法,讓方法執(zhí)行, 并且改變方法中的this關(guān)鍵字的指向

toString的理解:

乍一看應(yīng)該是轉(zhuǎn)換為字符串,但是某些toString方法不僅僅是轉(zhuǎn)換字符串

Number.toString(2) 轉(zhuǎn)化為字符串

除了

Object.prototype.toString() - [object Object] ? //它的作用是返回當(dāng)前方法的執(zhí)行主體方法中(this) 所屬類的詳細(xì)信息

var obj = {name: "abc"};

"[object Object]" 第一個object代表當(dāng)前實(shí)例是對項(xiàng)數(shù)據(jù)類型的 ,第二個Object代表的是obj所屬類的是Object

Math.toString() ---[object Math] 第二個Math代表的 this是Math 那么返回Math所屬類的是Math

var ary=[];

Object.prototype.toString .call(ary); ?-->[object Array]

({}).toString.call() ? ? 等同 Object ?(類似 ?[].toString.call ? ? Array)

var reg = /^\[object Array\]$/;

reg.test


JS 偽類

.clear {

width: 0;

height:0;

content: "",

overflow:hidden;

clear:both;

}}

獲取偽類元素 用 window.getComputedStyle(ele,before/after);


定時器 需要手動清除

window.setTimeout(function(){},1000); ? //1000ms 后執(zhí)行對應(yīng)的方法

window.setInterval(function(){},1000) //每一1000ms執(zhí)行一次 需要手動清除

設(shè)置定時器的時候是有返回值的 返回的結(jié)果是以個數(shù)字,代表當(dāng)前是第幾個定時器

window.clearTimeout(1,2); //數(shù)字代表清除第幾個計時器

window.clearInterval();也可以清除

3. var ?n=0; var timer = window.setInterval(fucntion(){

n++

if(n===5){

window.clearInterval();

},1000);

遞歸 :自己執(zhí)行的時候重新調(diào)用自己執(zhí)行


瀏覽器的滾動條滾動:拖動,鼠標(biāo)滾輪,鍵盤上下,pagedown/pageup,點(diǎn)擊滾動條的空白處或者箭頭,還可以通過JS控制scrollTop的值來實(shí)現(xiàn)

跑馬燈效果 重復(fù)兩個 在第一個結(jié)束的瞬間 重置(無限重復(fù))


JS同步和異步編程

JS中的兩種編程思想

JS是單線程的


大多都是同步

異步-->首先規(guī)劃要做一件事情,但是不是當(dāng)前立馬去執(zhí)行這件事情.

JS中的四種情況: 定時器,Ajax,事件的綁定,回調(diào)函數(shù)

window.setTimeout(function(){

n++

},0) //定時器默認(rèn)都有一個最小的等待事件,谷歌5-6ms,IE10-13ms

任務(wù)隊(duì)列(任務(wù)池): 看誰的時間短,就先執(zhí)行誰

選項(xiàng)卡問題?

for(var i=0;i<oLis.length;i++){

oLis[i].onclick = function(){ tabChange(i) ;} 因?yàn)榻壎ㄊ钱惒降?所以點(diǎn)擊的時候已經(jīng)等待了一段時間變?yōu)樽詈笠粋€i. 用閉包


圖片延遲加載/圖片懶加載

作用:保證頁面打開的速度(3s內(nèi)打不開,就算是死亡頁面)

原理1)隊(duì)友首屏內(nèi)容中的圖片:首先給對應(yīng)的區(qū)域一張默認(rèn)圖片站著位置(默認(rèn)圖片需要非常下,一般可以維持在5kb以內(nèi)),當(dāng)首屏內(nèi)容都加載完成后 或者以個延遲時間,我在開始加載真實(shí)的圖片

2) 對于其他屏中的圖片:也是給一個默認(rèn)圖片站位,滾動到區(qū)域再加載

擴(kuò)展:數(shù)據(jù)的異步加載,開始只把前兩屏的數(shù)據(jù)加載綁定出來,后面的數(shù)據(jù)不進(jìn)行處理,當(dāng)頁面滾動到相對應(yīng)區(qū)域的時候在從新請求數(shù)據(jù)然后綁定渲染數(shù)據(jù)


網(wǎng)站性能優(yōu)化:盡量較少向服務(wù)器請求的次數(shù) HTTP請求, CSS/JS文件進(jìn)行合并 ICON圖片也進(jìn)行合并(雪碧圖/css sprite) 圖片的延遲加載 數(shù)據(jù)的異步加載 在移動端 如果我做的是以個簡單的 宣傳頁,盡量的吧CSS 和JS寫成內(nèi)嵌式

.banner img{

display: none;

width: 100%;

height: 100%;

}

.banner {

margin: 10px auto;

width: 350px;

height: 200px;

border: 1px solid green;

background:url("img/default.img") no-repeat center #e1e1e1;

}

var banner=document.getElementById("banner"), imgFir = banner.getElementsByTagName("img")[0];

window.setTimeout(function(){

var oImg = new Image;//create a temporary tag

oImg.src=imgFir.getAttribute("trueImg");

oImg.onload = function(){

//onload 當(dāng)圖片能夠正常加載

imgFir.scr =? this.src;

imgFir.style.display = 'block';

oImg = null;

}

},500);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市粟害,隨后出現(xiàn)的幾起案子蕴忆,更是在濱河造成了極大的恐慌,老刑警劉巖悲幅,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孽文,死亡現(xiàn)場離奇詭異,居然都是意外死亡夺艰,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門沉衣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郁副,“玉大人,你說我怎么就攤上這事豌习〈婊眩” “怎么了拔疚?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長既荚。 經(jīng)常有香客問我稚失,道長,這世上最難降的妖魔是什么恰聘? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任句各,我火速辦了婚禮,結(jié)果婚禮上晴叨,老公的妹妹穿的比我還像新娘凿宾。我一直安慰自己,他們只是感情好兼蕊,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布初厚。 她就那樣靜靜地躺著,像睡著了一般孙技。 火紅的嫁衣襯著肌膚如雪产禾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天牵啦,我揣著相機(jī)與錄音亚情,去河邊找鬼。 笑死蕾久,一個胖子當(dāng)著我的面吹牛势似,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播僧著,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼履因,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盹愚?” 一聲冷哼從身側(cè)響起栅迄,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎皆怕,沒想到半個月后毅舆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愈腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年憋活,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虱黄。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡悦即,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辜梳,我是刑警寧澤粱甫,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站作瞄,受9級特大地震影響茶宵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宗挥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一乌庶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧属韧,春花似錦安拟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锅棕,卻和暖如春拙泽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裸燎。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工顾瞻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人德绿。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓荷荤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親移稳。 傳聞我的和親對象是個殘疾皇子蕴纳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

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

  • 第一章: JS簡介 從當(dāng)初簡單的語言,變成了現(xiàn)在能夠處理復(fù)雜計算和交互个粱,擁有閉包古毛、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,654評論 0 6
  • JS使用技巧專題 1開發(fā)技巧 1.1函數(shù)使用 1.1.1函數(shù)聲明方式 JS函數(shù)的寫法總結(jié) http://blog....
    Kevin_Junbaozi閱讀 1,076評論 0 11
  • 單例模式 適用場景:可能會在場景中使用到對象都许,但只有一個實(shí)例稻薇,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式胶征,...
    Obeing閱讀 2,058評論 1 10
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品塞椎,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時候需要使用工廠模式睛低。簡單...
    舟漁行舟閱讀 7,724評論 2 17
  • 走著 走著 沿途風(fēng)景交舞著變 是孤單 是笑顏 是海連綴著天 流走桑田
    義城閱讀 177評論 0 0