記一道坑爹的百度面試題

  閒來無事翻了翻面試題,看到一道很懵逼。。。面試

  

var a = 0, b = 0;

function A(a){
    A = function(b){
        console.log(a+b++);
    }
        console.log(a++);
}

A(1);
A(2);

  一眼看去2個A函數,再加上a和b有全局賦值又傳了參數,不曉得這題要表達什麼,囧。通過一番激烈的討論,(⊙v⊙)嗯,我仍是沒懂。本身多想了想忽然發現不得了的事,A函數裏的A貌似沒有執行,恩,沒執行就對了,那第一次調用咱們就能夠跳過它獲得第一個的結果1。咱們再看看第一次執行除了打印a而且a++還賦值給了全局變量a還幹了什麼。。。。。。不聰明的同窗發現,恩,還把funtion(b)}{}那一坨指向了A,因而function A(a)就由原來的一大坨變成了 A = function(b){ console.log(a+b++)}。b=2,a++,二者之和就等於4了。orz,面試題都這樣騙人的嗎?函數

  最後祝本身能在最後短暫的大學時光多學,早日成爲技術宅,還有就是寢室的坑貨們都進大公司。spa

相關文章
相關標籤/搜索