成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

js 深入知識(shí)

鄒強(qiáng) / 3018人閱讀

摘要:手寫(xiě)取的顯示原型取的隱式原型這里重點(diǎn)當(dāng)嚴(yán)格等于時(shí),返回深拷貝數(shù)組降維返回函數(shù)聲明和函數(shù)表達(dá)式這是一個(gè)表達(dá)式,表達(dá)式忽略名字的函數(shù)形參和實(shí)參表示函數(shù)形參的個(gè)數(shù)形參和實(shí)參映射關(guān)系兩個(gè)都存在才映射執(zhí)行順序語(yǔ)法分析預(yù)編譯發(fā)生在函數(shù)執(zhí)行的前一刻函數(shù)聲

1 手寫(xiě)instanceof
function _instanceof(A, B) {
    var O = B.prototype;// 取B的顯示原型
    A = A.__proto__;// 取A的隱式原型
    while (true) {
        //Object.prototype.__proto__ === null
        if (A === null)
            return false;
        if (O === A)// 這里重點(diǎn):當(dāng) O 嚴(yán)格等于 A 時(shí),返回 true
            return true;
        A = A.__proto__;
    }
}
2 深拷貝
   function deepClone(data) {
        if(typeof data === "object" && data !== null){
            var type = data.constructor;
            var result = new type();
            for (var key in data) {
                if (data.hasOwnProperty(key)) {
                    result[key] = deepClone(data[key]);
                }
            }
            return result;
        }
        return data;
    }
3 數(shù)組降維
var arr = [1, 2, [3]];
var res = Array.prototype.concat.apply([], arr);
console.log(res);
var arr2 = [1];
console.log(111);
console.log(arr2.concat(11));

// es6 
let flatten = arr => arr.reduce((begin,current)=>{
        Array.isArray(current)?
        begin.push(...flatten(current)):
        begin.push(current);
        return begin
    },[])
4 tofixed返回string
let aa = 10937843.44;
console.log(typeof aa.toFixed(3));
5 函數(shù)聲明和函數(shù)表達(dá)式
let test = function aa(){} //  這是一個(gè)表達(dá)式,表達(dá)式忽略名字的 
let test1 = function(){}
console.log(test) 
console.log(test.name) // aa 
console.log(test1.name) //test1 
console.log(aa)
6 函數(shù)形參和實(shí)參
function tmp(a,b){
  console.log(tmp.length) // 2 表示函數(shù)形參的個(gè)數(shù) 
}
tmp(1)
function sum(a,b,c){
  a = 11;
  console.log(arguments[0]) // 形參和實(shí)參映射關(guān)系(兩個(gè)都存在才映射)
  c = 2;
  console.log(arguments[2]) // undefined  
}
sum(1,2)
7 js 執(zhí)行順序

1 語(yǔ)法分析

2 預(yù)編譯 發(fā)生在函數(shù)執(zhí)行的前一刻

函數(shù)聲明整體提升,變量只是聲明提升
預(yù)編譯的過(guò)程(主要是讀變量聲明)

// 1. 創(chuàng)建AO對(duì)象(Active Object) 
// 2. 查找函數(shù)形參及函數(shù)內(nèi)變量聲明,形參名及變量名作為AO對(duì)象的屬性,值為undefined 
// 3. 實(shí)參形參相統(tǒng)一,實(shí)參值賦給形參 
// 4. 查找函數(shù)聲明,函數(shù)名作為AO對(duì)象的屬性,值為函數(shù)引用
全局的就是GO 就是window 
function test(){
  console.log(b)
  if(a){
    var b = 10; // 不要管if ,預(yù)編譯看到聲明就處理 
   }
}

3 解釋執(zhí)行

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/101039.html

相關(guān)文章

  • javascript知識(shí)點(diǎn)

    摘要:模塊化是隨著前端技術(shù)的發(fā)展,前端代碼爆炸式增長(zhǎng)后,工程化所采取的必然措施。目前模塊化的思想分為和。特別指出,事件不等同于異步,回調(diào)也不等同于異步。將會(huì)討論安全的類(lèi)型檢測(cè)惰性載入函數(shù)凍結(jié)對(duì)象定時(shí)器等話(huà)題。 Vue.js 前后端同構(gòu)方案之準(zhǔn)備篇——代碼優(yōu)化 目前 Vue.js 的火爆不亞于當(dāng)初的 React,本人對(duì)寫(xiě)代碼有潔癖,代碼也是藝術(shù)。此篇是準(zhǔn)備篇,工欲善其事,必先利其器。我們先在代...

    Karrdy 評(píng)論0 收藏0
  • 深入理解js引擎的執(zhí)行機(jī)制

    摘要:深入理解引擎的執(zhí)行機(jī)制最近在反省,很多知識(shí)都是只會(huì)用,不理解底層的知識(shí)。在閱讀之前,請(qǐng)先記住兩點(diǎn)是單線(xiàn)程語(yǔ)言的是的執(zhí)行機(jī)制。所以,是存在異步執(zhí)行的,比如單線(xiàn)程是怎么實(shí)現(xiàn)異步的場(chǎng)景描述通過(guò)事件循環(huán),所以說(shuō),理解了機(jī)制,也就理解了的執(zhí)行機(jī)制啦。 深入理解js引擎的執(zhí)行機(jī)制 最近在反省,很多知識(shí)都是只會(huì)用,不理解底層的知識(shí)。所以在開(kāi)發(fā)過(guò)程中遇到一些奇怪的比較難解決的bug,在思考的時(shí)候就會(huì)收...

    feng409 評(píng)論0 收藏0
  • ES6-7

    摘要:的翻譯文檔由的維護(hù)很多人說(shuō),阮老師已經(jīng)有一本關(guān)于的書(shū)了入門(mén),覺(jué)得看看這本書(shū)就足夠了。前端的異步解決方案之和異步編程模式在前端開(kāi)發(fā)過(guò)程中,顯得越來(lái)越重要。為了讓編程更美好,我們就需要引入來(lái)降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(shū)(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會(huì)promise...... 本書(shū)的目的是以目前還在制定中的ECMASc...

    mudiyouyou 評(píng)論0 收藏0
  • 深入理解js

    摘要:詳解十大常用設(shè)計(jì)模式力薦深度好文深入理解大設(shè)計(jì)模式收集各種疑難雜癥的問(wèn)題集錦關(guān)于,工作和學(xué)習(xí)過(guò)程中遇到過(guò)許多問(wèn)題,也解答過(guò)許多別人的問(wèn)題。介紹了的內(nèi)存管理。 延遲加載 (Lazyload) 三種實(shí)現(xiàn)方式 延遲加載也稱(chēng)為惰性加載,即在長(zhǎng)網(wǎng)頁(yè)中延遲加載圖像。用戶(hù)滾動(dòng)到它們之前,視口外的圖像不會(huì)加載。本文詳細(xì)介紹了三種延遲加載的實(shí)現(xiàn)方式。 詳解 Javascript十大常用設(shè)計(jì)模式 力薦~ ...

    caikeal 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<