作為開(kāi)發(fā)人員找到我的第一份工作花了我?guī)讉€(gè)月的時(shí)間,經(jīng)過(guò)數(shù)百封拒絕郵件,我終于得到了面試機(jī)會(huì)。我被問(wèn)了很多問(wèn)題來(lái)測(cè)試我的編程能力,其中一些是基礎(chǔ)的,但其中一些問(wèn)題,在短暫的面試期間對(duì)我來(lái)說(shuō)并不是那么容易弄清楚。我在這里,我分享一些我面試中遇到的問(wèn)題,以便我們可以一起學(xué)習(xí)和成長(zhǎng)。
如果你對(duì)我的回答有任何疑問(wèn),或者如果你有比我更好的解決方案,請(qǐng)?jiān)诹粞詤^(qū)告訴我。
01、console.log(1 < 2 < 3) 返回什么?
應(yīng)該是從左到右求值,所以問(wèn)題基本上相當(dāng)于console.log(1 < 2)和console.log(2 < 3)。由于 console.log(1 < 2) 計(jì)算結(jié)果為 true 并且 JavaScript 嘗試轉(zhuǎn)換為相同的類型,所以 true 被轉(zhuǎn)換為 1。從這個(gè)意義上說(shuō),console.log(1 < 2 < 3) 意味著 console.log( true < 3 ),也就是console.log(1 < 3),所以最后的答案是true。
讓我們?cè)傧胍幌耄琧onsole.log(3 > 2 > 1) 會(huì)返回什么?按照上面的邏輯,問(wèn)題應(yīng)該被解析成console.log(3 > 2)和console.log(2 > 1)兩部分。顯然 3 > 2 為true,所以我們將其轉(zhuǎn)換為 1。
下一步是比較 console.log(true > 1) 是否等效于 console.log(1 > 1),所以它會(huì)返回 false。
02、如何將兩個(gè)數(shù)組合并在一起?
array.concat()
此方法將兩個(gè)或多個(gè)數(shù)組合并在一起,它不會(huì)更改現(xiàn)有數(shù)組并返回一個(gè)新數(shù)組。
擴(kuò)展運(yùn)算符
擴(kuò)展運(yùn)算符由三個(gè)點(diǎn) (...) 組成,它允許你連接數(shù)組或復(fù)制數(shù)組實(shí)例。
03、array.map和array.forEach有什么區(qū)別?
這兩種方法都遍歷數(shù)組中的元素。但是,array.forEach() 不返回值,它會(huì)在 array.map() 創(chuàng)建一個(gè)新數(shù)組時(shí)對(duì)數(shù)組進(jìn)行原地變異。因此,如果你只是需要遍歷一個(gè)數(shù)組,forEach 是一個(gè)不錯(cuò)的選擇,如果你不想改變?cè)紨?shù)組,那么 map 更好。
04、控制臺(tái)的打印結(jié)果是什么?
正確答案應(yīng)該是 ACB。這是因?yàn)榇a從頂部開(kāi)始,所以console.log(‘A’)會(huì)先被執(zhí)行。然后,調(diào)用 setTimeout 但僅在 1 秒后執(zhí)行,因此下一步將是 console.log('C')。B 將是控制臺(tái)上顯示的最后一個(gè)字符。
05、var、let 和 const 有什么區(qū)別?
這個(gè)問(wèn)題測(cè)試你對(duì)一些重要的 JavaScript 概念的了解。var 和 let 之間有幾個(gè)區(qū)別。當(dāng)你在函數(shù)外部定義 var 變量時(shí),它們屬于全局范圍。全局變量意味著該變量可以被任何函數(shù)訪問(wèn)。
另一方面,使用 let 關(guān)鍵字的變量是塊作用域的。這意味著該變量只存在并且可以在相應(yīng)的范圍內(nèi)訪問(wèn)。在 JavaScript 中,塊由一對(duì)花括號(hào) {} 分隔,就像在 for 語(yǔ)句中一樣。
const 是用于聲明常量的關(guān)鍵字,它基本上與 let 關(guān)鍵字非常相似,不同之處在于,它創(chuàng)建對(duì)值的只讀引用并且不能重新分配值。例如:
寫(xiě)在最后
以上就是我在面試中經(jīng)常被問(wèn)到的幾個(gè)面試題,我在這里總結(jié)了一下,同時(shí),也想跟大家說(shuō)一句,基礎(chǔ)知識(shí)真的很重要。
準(zhǔn)備開(kāi)發(fā)面試很困難,需要付出很多努力,幸運(yùn)的是你可以通過(guò)更多的學(xué)習(xí)和練習(xí)變得更好。我希望你在面試中表現(xiàn)出色,并祝你好運(yùn)!