第一次面試體會

2017年6月9日,我第一次面試恬惯,結(jié)果一塌糊涂。
我的筆試題亚茬,很基礎(chǔ)酪耳,不過剛看到也確實是懵逼,以下總結(jié):

IMG_20170609_173635.jpg

js函數(shù)的幾種調(diào)用方式

  1. 函數(shù)調(diào)用方式
  2. 方法調(diào)用方式
  3. 構(gòu)造器調(diào)用方式
  4. apply|call調(diào)用方式

詳細(xì)說明傳送門
http://www.cnblogs.com/winyh/p/6668811.html
http://www.jb51.net/article/62535.htm

我最常用的是函數(shù)調(diào)用方式刹缝,就是寫個function碗暗,然后直接名字調(diào)用颈将。
方法其實是在函數(shù)內(nèi)部寫屬性函數(shù)調(diào)用。
構(gòu)造器調(diào)用是在函數(shù)原型鏈上寫屬性函數(shù)調(diào)用言疗,不過不推薦使用了晴圾。
apply這種調(diào)用方式的優(yōu)點在于可以指定this指向的對象。
其實幾種調(diào)用方式的區(qū)分都是和this有關(guān)系噪奄。

傳送門中有提到call和apply的區(qū)別疑务,但是不是說的很清楚,這里需要信息查閱一下資料梗醇!
其實這些JavaScript語言精粹里面都有知允,只是沒好好看,可惜叙谨。

如何提高nodejs服務(wù)器的穩(wěn)定性

這個問題其實以前都沒有怎么關(guān)注過温鸽,不過這里提出來了想想似乎是很容易發(fā)生的問題。nodejs作為一種單線程的環(huán)境手负,一旦崩潰影響的就是所有的軟件模塊涤垫,這個很危險。以下是總結(jié)了一些解決方法:

  1. 當(dāng)然是從要求開發(fā)者的角度出發(fā)竟终,多寫try...catch等一些block容錯了
  2. 有利用一些外部的程序監(jiān)聽蝠猬,比如forever,supervisor之類
  3. 增加日志管理统捶,log4js 模塊(這個需要了解以下)
  4. 有提到domain這個東西榆芦,不是很清楚
  5. process.on('uncaughtException', function(err){...}); 來處理未被捕捉的錯誤。

傳送門
https://cnodejs.org/topic/4f16442ccae1f4aa270010e7
http://www.cnblogs.com/yupeng/p/3472214.html

動態(tài)鏈接和靜態(tài)鏈接的區(qū)別

其實這個問題我是很好奇和js的關(guān)系喘鸟,總感覺這個是c++鏈接庫的知識匆绣。
明天查一下

http從發(fā)起請求到接受響應(yīng)的整個過程

傳送門
http://www.cnblogs.com/YeChing/p/6337378.html

js原型鏈理解

//js的變量和函數(shù)聲明都會提升,但是函數(shù)提升在變量提升之上什黑,所以如果重名崎淳,變量會覆蓋函數(shù)。

function Foo(){
  getName = function() {console.log(1);}
  return this;
}

Foo.getName = function() {console.log(2);}
Foo.prototype.getName = function(){console.log(3);}
var getName = function(){console.log(4);}
function getName(){console.log(5);}

//函數(shù)的本身屬性
Foo.getName();2

//函數(shù)提升
getName();4

//不知道為什么這個無法運行愕把。
Foo().getName();

//函數(shù)提升
getName();4

// new Foo.getName();2

//構(gòu)造器調(diào)用函數(shù)拣凹,只會調(diào)用原型鏈上的屬性
new Foo().getName();3
new new Foo().getName();3

傳送門
http://www.cnblogs.com/wangfupeng1988/p/3977924.html

js this的理解

分為兩個部分,一個是瀏覽器中的this恨豁,另一個是node中的this嚣镜。

  • 瀏覽器中的this遵從函數(shù)調(diào)用四種方式,分別指向?qū)?yīng)的對象圣絮。
  • node中的this卻不太一樣祈惶。

node函數(shù)中的this指向global雕旨。
全局中的this是一個空的對象扮匠,也就是module.exports捧请。
構(gòu)造對象中的this指向這個對象。

傳送門
http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html
http://www.jb51.net/article/81556.htm

js call和apply的區(qū)別與作用

  • 對來call和apply這兩個函數(shù)沒有太大的區(qū)別棒搜,唯一就是傳入?yún)?shù)一個是不定長(call)疹蛉,一個是數(shù)組(apply),而這兩個函數(shù)的第一個參數(shù)其實都是你想指定的上下文力麸。

    function add()
    {
      this.a = 1;
      this.b = 2;
      this.showResult = function(){
        console.log(this.a + this.b);
      }
    }
    
    function sub()
    {
      this.a = 3;
      this.b = 4;
    }
    var add1 = new add();
    var sub1 = new sub();
    add1.showResult.call(sub1);      --7
    add1.showResult.apply(sub1,[]);      --7
    
  • bind沒有參數(shù)可款,只綁定上下文。
    var num = 9;

    function Module(){
      this.num = 81;
      this.getNum = function(){
        console.log(this.num);
      }
    }
    
    var mymodule = new Module();
    mymodule.getNum();
    
    // var getNum = mymodule.getNum;
    function getNum(){
      console.log(num);
    }
     // 9, 因為在這個例子中克蚂,"this"指向全局對象
    getNum();//undefined
    
    // 創(chuàng)建一個'this'綁定到module的函數(shù)
    var boundGetNum = getNum.bind(mymodule);
    boundGetNum(); // 81
    

傳送門
http://uule.iteye.com/blog/1158829
https://segmentfault.com/q/1010000003494514
https://segmentfault.com/a/1190000002662251

時間復(fù)雜度計算

閑聊

期間技術(shù)也有問到一些網(wǎng)絡(luò)方面的基礎(chǔ)闺鲸,網(wǎng)絡(luò)各層是負(fù)責(zé)什么的。
還有是promise的狀態(tài)轉(zhuǎn)換埃叭。

大boss有問到數(shù)據(jù)庫三大原則和樂觀鎖摸恍、悲觀鎖等,還有hashmap數(shù)據(jù)結(jié)構(gòu)怎么實現(xiàn)赤屋。

相關(guān)

偏函數(shù)

返回一個函數(shù)立镶,返回的函數(shù)是根據(jù)入?yún)⑸傻呐袛囝愋偷暮瘮?shù)。利用了js閉包类早。

閉包

閉包的最大用處有兩個媚媒,一個是前面提到的可以讀取函數(shù)內(nèi)部的變量,另一個就是讓這些變量的值始終保持在內(nèi)存中涩僻。

使用注意點

  1. 由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中缭召,內(nèi)存消耗很大,所以不能濫用閉包逆日,否則會造成網(wǎng)頁的性能問題恼琼,在IE中可能導(dǎo)致內(nèi)存泄露。解決方法是屏富,在退出函數(shù)之前晴竞,將不使用的局部變量全部刪除。
  2. 閉包會在父函數(shù)外部狠半,改變父函數(shù)內(nèi)部變量的值噩死。所以,如果你把父函數(shù)當(dāng)作對象(object)使用神年,把閉包當(dāng)作它的公用方法(Public Method)已维,把內(nèi)部變量當(dāng)作它的私有屬性(private value),這時一定要小心已日,不要隨便改變父函數(shù)內(nèi)部變量的值垛耳。

傳送門
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子堂鲜,更是在濱河造成了極大的恐慌栈雳,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缔莲,死亡現(xiàn)場離奇詭異哥纫,居然都是意外死亡,警方通過查閱死者的電腦和手機痴奏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門蛀骇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人读拆,你說我怎么就攤上這事擅憔。” “怎么了檐晕?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵雕欺,是天一觀的道長。 經(jīng)常有香客問我棉姐,道長屠列,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任伞矩,我火速辦了婚禮笛洛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乃坤。我一直安慰自己苛让,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布湿诊。 她就那樣靜靜地躺著狱杰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪厅须。 梳的紋絲不亂的頭發(fā)上仿畸,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音朗和,去河邊找鬼错沽。 笑死,一個胖子當(dāng)著我的面吹牛眶拉,可吹牛的內(nèi)容都是我干的千埃。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼忆植,長吁一口氣:“原來是場噩夢啊……” “哼放可!你這毒婦竟也來了谒臼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤耀里,失蹤者是張志新(化名)和其女友劉穎蜈缤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體备韧,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年痪枫,在試婚紗的時候發(fā)現(xiàn)自己被綠了织堂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡奶陈,死狀恐怖易阳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吃粒,我是刑警寧澤潦俺,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站徐勃,受9級特大地震影響事示,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜僻肖,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一肖爵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臀脏,春花似錦劝堪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搀玖,卻和暖如春余境,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灌诅。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工葛超, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人延塑。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓绣张,卻偏偏與公主長得像,于是被迫代替她去往敵國和親关带。 傳聞我的和親對象是個殘疾皇子侥涵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

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