title: 一次不錯的面試經(jīng)歷
date: 2017-08-25 15:50:56
tags: 學(xué)習(xí)
面試中的問題
面試官的問題都是很常規(guī)的問題枣宫,但是自己回答的還是欠妥婆誓。好多基礎(chǔ)知識都不扎實,其次還有一個原因就是平時不怎么看面試題也颤,如果多看看效果肯定更好洋幻。
數(shù)據(jù)類型
js中的數(shù)據(jù)類型:基本數(shù)據(jù)類型,引用類型巴拉巴拉的翅娶。
typeof
這個問題剛學(xué)js的時候一直遇到文留,但是老實說沒去看過,因為覺得沒什么用竭沫。哈哈,typeof 方法能 返回的類型只有這么幾種燥翅。這個題陣亡了
查了一下MDN
Undefined "undefined"
Null "object" (見下方)
Boolean "boolean"
Number "number"
String "string"
Symbol (ECMAScript 6 新增) "symbol"
宿主對象(由JS環(huán)境提供) Implementation-dependent
函數(shù)對象 ( [[Call]] 在ECMA-262條款中實現(xiàn)了) "function"
任何其他對象 "object"
css盒子模型
就說了一下content,padding蜕提,margin啥的森书,然后w3c標準和ie下的不同。面試官不置可否谎势,也不知道答案
閉包
老問題了拄氯,聊了一下垃圾回收機制,將內(nèi)部函數(shù)傳遞到所在詞法作用域以外的地方它浅,這個函數(shù)會保持對當前作用域的引用,這個作用域就不會被回收
splice的第三個參數(shù)
好吧镣煮,平時就知道第一個第二個姐霍,第三個不知道.
注意區(qū)分和slice的區(qū)別,slice沒有side effect
let arr = [1,2,3,4,5,6,7,8]
arr.splice(1,2,2222,33333,44444,5555) //[2, 3]
arr // [1, 2222, 33333, 44444, 5555, 4, 5, 6, 7, 8]
表單中disable和readonly 表單中disable和readonly區(qū)別
之前都是直接去react的典唇,調(diào)用一下antd的api镊折,這方面實在是欠缺,說出來可笑介衔。都沒聽說過readonly:夼摺!炎咖!
dom事件
原生dom事件寫過赃泡,但是沒有遇到過冒泡問題寒波,無賴網(wǎng)上都在說,能答出來但是不知道干嘛用升熊。就寫過stopPropagation和event.preventDefault()之類的
cookie和localstorage區(qū)別等
這個問題一直都有注意
cookie
- 讓http有狀態(tài)俄烁,http本來是沒有狀態(tài)的,每次請求都會傳到后端,一般是放個人的信息级野,可以用來做一些鑒權(quán)操作
- cookie很小页屠,存的東西有限
- cookie的expire time,可以設(shè)置有效時間蓖柔,不設(shè)置就是瀏覽器關(guān)閉就清除
localStorage
- 顧名思義辰企,瀏覽器本地倉庫,空間大况鸣,和sessionStorage的區(qū)別在于牢贸,local不清理會一直存在,session每次關(guān)閉就清理懒闷。
- <a >注意區(qū)分前端的sessionStorage和后端session機制的不是一個概念</a>
函數(shù)申明2種方式的區(qū)別
js里面的申明提前十减,編譯階段會把申明全部拿到最前面,賦值操作在執(zhí)行階段愤估。
如果沒記錯的話帮辟,函數(shù)申明優(yōu)先級在變量申明前面。
console.log(funcA('a')) // 報錯funcA is not a func
console.log(funcB('b')) // 報錯funcB is not defined玩焰,let 沒有變量提升
console.log(funcC('c')) // c由驹,函數(shù)申明優(yōu)先提前
var funcA = function(...args){
console.log(args)
}
let funcB = function(...args){
console.log(args)
}
function funcC(...args){
console.log(args)
}
var funcC = 1
funcC('ccc') // 報錯,對變量funcC重新賦值了昔园,funcC已經(jīng)不是函數(shù)了
定義一個不含有原型鏈上方法的對象
通過null繼承過來的蔓榄,什么屬性和方法都沒有
object.create(null)
看看別人說的吧,不一定準確</a>
css畫一個三角形默刚,圓形平行四邊形等
#triangle-up {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
手寫正則
都是比較基礎(chǔ)的甥郑,qq郵箱,數(shù)字字母組合等
/^[a-zA-Z\d]$/
/^[0-9]{5,12}/@qq.com$/
總結(jié)
深刻體會到基礎(chǔ)太差了荤西,有些問題脫離了應(yīng)用場景澜搅,但是確實是不錯的面試題。
寫這個博客是為了記錄這些問題邪锌,也是為了記住自己的不足勉躺。
最后面試官說了一下英文口語需要鍛煉。這個短期還是放下吧