1. 程式人生 > >一次圍繞setTimeout的前端面試經驗分享

一次圍繞setTimeout的前端面試經驗分享

這篇文章主要跟大家分享了一次圍繞setTimeout展開的前端面試經驗,是一篇有意思的圍繞setTimeout展開的前端開發考題,考察了for迴圈、定時器setTimeout()、JavaScript閉包、匿名函式和Promise等,一不小心你可能就會做錯,快來看看你有沒有掌握了上面的知識。

前言

前端這個近年的熱門領域,搞事氣氛特別強烈,我朋友小偉最近就在瘋狂面試,遇到了許多有趣的面試官,有趣的面試題,我來幫這個搞事 boy 轉述一下。

具體如下:

以下是我一個朋友的故事,真的不是我。

?
1 2 3 for
(var i = 0; i < 5; i++) { console.log(i); }

“小偉,你說說這幾行程式碼會輸出什麼?”

當面試官在 Sublime 打出這幾行程式碼時,我竟有點矇蔽。蛤?這不是最簡單的一個迴圈嗎?是不是有陷阱啊,我思索一下,這好像和我看的那個閉包的題很像啊,這面試官是不是沒寫完啊?有毒啊。

“應該是直接輸出 0 到 4 吧...”,我弱弱的說到。

“是啊,別緊張,這題沒啥陷阱,我就是隨便寫一下。”

(Excuse me?面試官你是來搞笑的嗎,嚇死老子了!)

“那你在看看這幾行程式碼會輸出什麼?”

?
1 2 3 4 5 for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); }

額,什麼鬼,怎麼還不是我背了那麼多遍的那道閉包題,讓我想想。 setTimeout 會延遲執行,那麼執行到 console.log 的時候,其實 i 已經變成 5 了,對,就是這樣,這麼簡單怎麼可能難到老子。

“應該是開始輸出一個 5,然後每隔一秒再輸出一個 5,一共 5 個 5。”

“對,那應該怎麼改才能輸出 0 到 4 呢?”

終於到我熟悉的了,加個閉包就解決了,穩!

?
1 2 3 4 5 6 7 for (var i = 0; i < 5; i++) { (function(i) { setTimeout(function() { console.log(i); }, i * 1000); })(i); }

“很好,那你能說一下,我刪掉這個 i 會發生什麼嗎?”

?
1 2 3 4 5 6 7

相關推薦

圍繞setTimeout前端面試經驗分享

這篇文章主要跟大家分享了一次圍繞setTimeout展開的前端面試經驗,是一篇有意思的圍繞setTimeout展開的前端開發考題,考察了for迴圈、定時器setTimeout()、JavaScript閉包、匿名函式和Promise等,一不小心你可能就會做錯,快來看看你有沒

人生第一面試TCL-實習生筆試及面試經驗分享

前面幾天參加了TCL實習生招聘,簡歷通過後是線上評測,自己投的是軟體開發實習生,但是職位要求裡面沒有填寫具體的內容,只是簡單的要求是計算機軟體通訊相關專業,線上測評是和技術無關的邏輯,數學和圖形分析,說是100分75分給過。 因為之前自己參加的大眾點評實習生招聘的線上測評沒

網易前端實習面試

步入正題-筆試 本來我以為只有面試的,發現那個姐姐並不是帶我去面試的,帶我去了個房間,留了兩張題目給我,說半小時來說,毫無防備hhh接下來步入正題吧~ 1.alert(1&&2),alert(1||0) 具體我不記得了反正就這兩個,我以

【Web前端開發】面試經驗分享(應屆生)

序言: 我是一名學習前端兩年的學生,一直在前端學習路上摸爬滾打,從實習到校招,經歷了很多場面試,通過該篇文章,總結自己在面試過程中的一些心得體會,希望與大家共勉,一起加油! 學習迷茫?看雞湯 既然走進了前端大門,就不要退縮,你想要的一切時間都會

騰訊前端面試經驗

這篇文章是對我大四秋招以來面試的總結,裡面包含前端面試知識的方方面面,目前本人已經拿到騰訊offer,希望能對後面找工作的學習學妹們有所幫助。騰訊面試對基礎比較看重,然後需要你有兩三個比較好的專案,一面重視面試者對前端基礎的把握,還要手寫程式碼,不過不難,二面部門的leader面,這一面比較難,面試官會對你的

分享大廠的技術面試通過,卻因學歷被拒發 offer 的悲慘經歷

概述 今天心情很down,快週末了,說點不開心的事情給大家開心一下,上週面試心儀已久的大廠,技術面很順利的通過一面/二面/三面,最後到HR面也很順利,然後被問到學歷(自考本科)後,HR 語氣發生一些轉變說要跟面試官再溝通,今天接到HR通知說技術過關,學歷不達標(全日制本科),不能發 offer,心情很低落,有

linux運維面試問題~l

以及 負載均衡 可執行文件 記錄 固定 lin 公司 比較 均衡 簡介:群友在面試一家公司中,公司出了這樣的一個問題:我有兩組機器,A組機器地址為10.0.1.10到10.0.1.30,B組機器地址為10.0.1.60到10.0.1.90 把本地一個aaa的可執行文件,上傳

記第一一言難盡的前端面試

如何 .cn 鄙視 面試 技術 理解 菜鳥 col 沒有 不折不扣的應屆生 + 不折不扣的一年經驗 = 不折不扣的菜鳥,就是我!記錄一下珍貴的面試機會啦,這次踩的坑說不定下次還要踩呢 讓我仔細回味一下這次看似並不專業的面試是如何難住了智慧的我: Part One 面試官:請

vipkid和vipjr哪個好,年收費多少錢真實經驗分享

vipkid和vipjr哪個好 vipjr\和vipkid哪個好 vipkid和vipjr都是比較有名氣的在線英語培訓機構了,但是也有很多的家長不知道vipkid和vipjr哪個好,剛好我都有去了解過,所以來和大家分享下吧。 前一兩個月的時間我都在為給孩子挑選一家好的少兒英語學習機構而做了不少的準備。

遊戲運營的面試體驗

一次遊戲運營的面試體驗@運營 記錄自己一次真實的面試經歷,我面試的是****的遊戲運營(休閒遊戲)崗位,筆試很容易就通過了,問題也不難,第二天通知一面,面試方式是視訊面試,時間在昨天,這是我第一次參加的視訊面試,可能也是唯一一次,沒有面對面那麼緊張。 開始沒有自我介紹,面試官會瀏覽一下簡

記錄小型專案管理的經驗

專案背景:從IE6升級到IE11,時間長度大概為2個月,人數為3個人,內容不多,但是需要寫一些文件(詳細設計與測試結果報告書)。我帶兩個新入職的員工來完成這次的升級專案。 總結的教訓:    1.任務的劃分不夠細,沒有明確的劃分出每個人應該負責的部分,也沒有劃分到每個人每天應該完成的工作   2.即使是

自動化測試崗位面試的過程及問題

自我介紹一下 8la8la8la… 說說你的自動化框架是怎麼實現的 python+selenium+excel檔案用資料驅動 我的意思是說,具體怎麼實現的 哦,先寫一個base檔案做基礎負責呼叫實際方法,還有資料的讀寫;然後往上有專門封裝UI操作的method檔案,

2019屆華為秋招數字芯片面試經驗分享

2019屆秋招,2018年10月16日,座標杭州香格里拉飯店西樓小禮堂。 距離拿到offer已半月有餘,閒來無事,回憶一下去面杭研海思數字晶片的經過,順便為後來者提供借鑑,希望你們能從我的經歷中得到些許啟發。 其實網上也有幾篇不錯的關於華為數字晶片的經驗可以供大家參考,硬體技術工程師

(轉)來自位作業輔導老師的經驗分享

  https://baijiahao.baidu.com/s?id=1585466248617857440&wfr=spider&for=pc   最近看新聞,很多家長都會為孩子寫作業的事頭痛,作為一個曾經連續四年專職給孩子輔導作業,並讓全班90%同

Android 最新面試經驗分享(百度、小米、樂視、美團、58、獵豹、360、新浪、搜狐)

臨近年中,又到了面試求職高峰期,最近有很多讀者都在求大廠面試題。正好我之前電腦裡面有這方面的整理,於是就發上來分享給大家。 這些題目是網友去百度、小米、樂視、美團、58、獵豹、360、新浪、搜狐等一線網際網路公司面試被問到的題目。熟悉本文中列出的知識點會大大增加通過前兩輪技術面試的機率。 網

圖森電話面試

說明 這次面試可能是我秋招以來面試中難度最大的一場,主要是涉及到太多的論文細節以及程式碼細節。 感想:問的東西特別全,什麼都要會,沒做過的方向也需要知道大概有哪些主流的方法;面試的主要節奏就是:(1)

js實現累加(閉包、柯里化)面試經驗分享

閉包 今天面試需要手寫一段程式碼實現 var a = sum(); a.add(1); a.add(2); a.add(3); a.add(4); a.getResult();//打印出10

【轉】加班與加薪的祕密:位華為工程師的經驗分享

1、薪水:薪水目前是統一應屆本科9K,研究生10K,博士12-14K左右;五險一金按工資標準交,年終獎分等級A/B+/B/C/D,每個等級內也有排名,A一般5-7個月,B+為3-5個月,B則是2-3個月,C的話有的部門有少許獎金,但大部分都是沒有獎金的,D屬於裁退績效。   年終獎一般是年中發4-5月份溝通,

驚險的跳槽面試經歷(阿里/美團/頭條/網易/有贊...)

為啥跳槽每次說因為生活成本的時候面試官都會很驚奇,難道有我們這裡貴?好想直接給出下面這張圖,廈門

百度前端面試經驗

昨天參加了百度的前端校招面試,今天決定總結一下問題,很多記不清了,把記得的跟大家分享一下: 1.手動封裝一個tap或者click。 2.寫一個佈局:左側定寬高,右側自適應。左側裡面有個頭像,圓形,水平垂直居中。 3.盒模型 4.css3動畫都瞭解哪些,怎麼用 5.手寫程