国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一次性理清JavaScript變量等高難度面試問題

Charlie_Jade / 2478人閱讀

摘要:再次聲明的函數(shù)會替代原有的函數(shù)第二點第一個函數(shù)中的指向。解決這些問題的關(guān)鍵是不要想當(dāng)然,動手一步一步模擬執(zhí)行順序,模擬變量提升情況第二種面向?qū)ο髥栴}或高階函數(shù)等待更新

主要是解決JavaScript中比較難懂的部分,當(dāng)然了,這部分經(jīng)常在面試題中露面,這篇文章主要是講解解題思路,對新手會有很大幫助(如果你仔細(xì)看的話)。書籍方面,我看的是《你不知道的javascript》,精髓就在里面嘍。文章會持續(xù)更新( 如果能看到比較刁鉆的題目的話, 也歡迎大家將自己遇到的異常難于理解JavaScript題目分享出來喔 )
第0種 解析順序
    function a() {
        b = function () {
            console.log(1)
        }

        return this;
    }

    var b = function () {
        console.log(2)
    }

    function b() {
        console.log(3)
    }

    b();

    a().b();

    b();

1.首先,你要明白的是3永遠(yuǎn)不可能打印出來。這涉及到函數(shù)的聲明方式和執(zhí)行順序問題。
直接用function的方式聲明的函數(shù),函數(shù)可以在function聲明之前被調(diào)用,這說明在代碼運行之前就已經(jīng)調(diào)用了。
再次聲明的函數(shù)var b會替代原有的函數(shù)b

2.第二點: 第一個函數(shù)中的this指向。一個點:函數(shù)中的this是在運行時候決定的,而不是函數(shù)定義時, 具體就看誰調(diào)用了this.在第一個函數(shù)中,沒有調(diào)用對象,在瀏覽器中,this就指向window

3.第三點: 還是第一個函數(shù)中,不使用var標(biāo)識符直接定義的變量都屬于全局變量,也就是說第一個函數(shù)中的b是掛載到window上的。

第1種 變量提升
(function(){
    a = 5;
    alert(window.a);
    var a = 10;
    alert(a);
})();

喜聞樂見!看見一堆的變量a就知道了,這是變量提升的問題了,只需要自己模擬出執(zhí)行順序就行了.

等同于:

var  a; // 第一步:變量提升
a = 5; // 后面的就直接拿上來
alert(window.a);
a = 10;
alert(a);

同類型題目:

var a=1;
function test(){
    console.log(a);
    var a=1;
}
test();

看見var就把它提升到最前面就行了,一樣畫瓢解決:

var a;
a = 1;

function test() {
  var a;
  console.log(a);
  a = 1;
}

還有同類型的題目一樣可以依葫蘆畫瓢解決:

 var foo = "hello";
    (function (foo) {
        console.log(foo);
        var foo = foo || "world";
        console.log(foo);
    })(foo);
    console.log(foo);

等。

解決這些問題的關(guān)鍵是:不要想當(dāng)然,動手一步一步模擬執(zhí)行順序,模擬變量提升情況

第二種 面向?qū)ο髥栴}或高階函數(shù)( 等待更新 )

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/102077.html

相關(guān)文章

  • 前端_JavaScript

    摘要:為此決定自研一個富文本編輯器。例如當(dāng)要轉(zhuǎn)化的對象有環(huán)存在時子節(jié)點屬性賦值了父節(jié)點的引用,為了關(guān)于函數(shù)式編程的思考作者李英杰,美團(tuán)金融前端團(tuán)隊成員。只有正確使用作用域,才能使用優(yōu)秀的設(shè)計模式,幫助你規(guī)避副作用。 JavaScript 專題之惰性函數(shù) JavaScript 專題系列第十五篇,講解惰性函數(shù) 需求 我們現(xiàn)在需要寫一個 foo 函數(shù),這個函數(shù)返回首次調(diào)用時的 Date 對象,注意...

    Benedict Evans 評論0 收藏0
  • CSS相關(guān)面試題——三欄等高布局

    摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應(yīng)。代碼如下效果如下所示乍一看實現(xiàn)了三列布局,但是題目要求等高,這個可就麻煩了。 題目 最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應(yīng)。要求三欄的高度隨最高的一欄展示 解題 step1 常規(guī)拿到這個面試題,首先想到的是三個盒子左浮動右浮動...

    Taste 評論0 收藏0
  • CSS相關(guān)面試題——三欄等高布局

    摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應(yīng)。代碼如下效果如下所示乍一看實現(xiàn)了三列布局,但是題目要求等高,這個可就麻煩了。 題目 最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應(yīng)。要求三欄的高度隨最高的一欄展示 解題 step1 常規(guī)拿到這個面試題,首先想到的是三個盒子左浮動右浮動...

    fsmStudy 評論0 收藏0
  • CSS布局——左定寬度右自適應(yīng)寬度并且等高布局

    摘要:今天有位朋友一早從妙味課堂轉(zhuǎn)來一個有關(guān)于布局的面試題,需要解決,花了點時間寫了幾個放上來與大家分享受。 今天有位朋友一早從妙味課堂轉(zhuǎn)來一個有關(guān)于CSS布局的面試題,需要解決,花了點時間寫了幾個DEMO,放上來與大家分享受。那么我們在看DEMO之前一起先來看看這個面試題的具體要求吧: 左側(cè)固定寬,右側(cè)自適應(yīng)屏幕寬;左右兩列,等高布局;左右兩列要求有最小高度,例如:200px;(當(dāng)內(nèi)容超出...

    dreamtecher 評論0 收藏0
  • 面試寶典

    摘要:有談?wù)劽嬖嚺c面試題對于前端面試的一些看法。動態(tài)規(guī)劃算法的思想及實現(xiàn)方法幫大家理清動態(tài)規(guī)劃的解決思路以及原理方法前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個方面。極客學(xué)院前端練習(xí)題道練習(xí)題,面試季練練手。 由數(shù)據(jù)綁定和排序引入的幾個 JavaScript 知識點 在 JavaScript 的數(shù)據(jù)綁定和做簡單的表格排序中遇到的幾個知識點 [[JS 基礎(chǔ)...

    neu 評論0 收藏0

發(fā)表評論

0條評論

Charlie_Jade

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<