本身并不喜歡寫面經(jīng),所以這一篇也不是面經(jīng)资盅。算是新鮮火熱辣的面試感受漓库,因?yàn)樽约阂彩遣煌K⒚娼?jīng)的人,所以刷面經(jīng)同學(xué)估計(jì)要出門轉(zhuǎn)左走好了趟咆。
背景
2016年騰訊校招-廣州-前端-二面
面試題目
- link和import的區(qū)別添瓷?
- js實(shí)現(xiàn)中央播報(bào)臺(tái)時(shí)間播報(bào)。例如:今天是北京時(shí)間:二〇一五年三月十二日 星期三 五時(shí)三十八分
面試過程
第一道題并沒有答出來值纱,腦袋里搜尋了下關(guān)于import的問題鳞贷,只記得import樣式優(yōu)先級(jí)好像不太一樣。所以這個(gè)問題虐唠,當(dāng)時(shí)都是亂答的搀愧。
其實(shí)基本上沒用過import,所以先明確下用法:
- link:
<link rel="stylesheet" type="text/css" href="style.css" />
- import
<style type="text/css"> @import url(style.css); </style>
** 1.使用方法不同(XHTML vs CSS)**
link一般在html頭部定義疆偿,作為html標(biāo)簽咱筛,同時(shí)除了引入css之外,還可以說明比如說rel="icon"
W3School對(duì)link定義如下(鏈接資源翁脆,主要用于鏈接外部的樣式表):
The <link> tag defines a link between a document and an external resource.
The <link> tag is used to link to external style sheets.
import一般定義在css內(nèi)部眷蚓,并且一定要在其他所有規(guī)則之前(除了charset),也就是一般寫在文件頭部反番,并且專門拿來鏈css的沙热。
** 2.加載順序差別 **
link一般都是并行加載的(其實(shí)也不算叉钥,一個(gè)域名下一般有2-6個(gè)可以同時(shí)加載,但是要求服務(wù)器是逐個(gè)返回的篙贸,比如說第二個(gè)資源要等到服務(wù)器發(fā)送第一個(gè)的正確響應(yīng)然后被瀏覽器接收到后投队,瀏覽器才發(fā)送第二個(gè)請(qǐng)求)
而import其實(shí)更延遲一些,它會(huì)等到頁面下載完后才加載爵川,因而可能會(huì)產(chǎn)生閃爍敷鸦,說多不如上圖(swiper.css在components.css中被import):
** 3.兼容性問題(這個(gè)應(yīng)該已經(jīng)不打緊了,ie6都已經(jīng)遭遇全面封殺了==) **
由于@import是CSS2.1提出的所以老的瀏覽器不支持寝贡,@import只有在IE5以上的才能識(shí)別扒披,而link標(biāo)簽無此問題。
至于所謂樣式優(yōu)先級(jí)圃泡,試了下碟案,并沒有出現(xiàn)。也就是說link和import都是加載資源颇蜡,樣式如何應(yīng)用上其實(shí)沒有差別价说,都是按文檔出現(xiàn)位置的優(yōu)先級(jí)(和css加載不相關(guān)哦)
扯的有點(diǎn)多== 下面看第二道題。
一向面試都會(huì)很緊張风秤,尤其是手寫代碼的時(shí)候鳖目,腦袋都會(huì)糊成漿,特別著急== 所以其實(shí)這種性格壓力面都很難過缤弦。面試官一說完就開始寫领迈,細(xì)節(jié)什么的都沒有注意到,雖然面試官很nice會(huì)一步步提示甸鸟,但是心已經(jīng)亂掉了惦费。
還是說題吧。
題目乍看上去很簡(jiǎn)單抢韭,但是好像10月薪贫,翻成中文是應(yīng)該是十月而非一十〇月。還有星期日而非星期〇或者星期七刻恭,又或者〇秒是允許的瞧省。日期替換的時(shí)候一來我就打算用正則,反而增加了替換的難度鳍贾。
整體思路后來整理如下:
- 提取日期
- 轉(zhuǎn)換成中文
- 處理特殊情況
感覺寫的還是很不好鞍匾,跪求更好解決辦法
var DATE_ZH = ["〇", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
var DATE_UNIT = ["年", "月", "日", "星期", "時(shí)", "分", "秒"];
function timeReport(date) {
var dateArr = [date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getDay(), date.getHours(), date.getMinutes(), date.getSeconds()];
var transformedDate = dateArr.map(function(time, index){
var transformedTime = "";
var mod = 0;
var curTime = time;
do{
mod = curTime % 10;
curTime = Math.floor(curTime / 10);
//deal with sunday
if(index == 3 && time == 0){
transformedTime += " " + DATE_UNIT[index] + "日 ";
break;
}
//deal with year like 2015
if(index == 0 ){
transformedTime = DATE_ZH[mod] + transformedTime;
continue;
}
//deal with 10, 20, 30, ... 50 and 0
transformedTime = (mod == 0 && time !== 0) ? "" : DATE_ZH[mod] + transformedTime;
//deal with 30, 29, 28, ... 10
if(curTime >= 1){
transformedTime = "十" + transformedTime;
if(curTime == 1) break;
}
}while(curTime >= 1)
return transformedTime += index !== 3 ? DATE_UNIT[index] : "";
});
return transformedDate.join("");
}
面試感受
原本安排的面試從12:30一直拖到了15:00才面上,饑腸轆轆的我以為會(huì)遇到一個(gè)非常之嚴(yán)厲的面試官骑科,結(jié)果面試官非常nice橡淑。面試只持續(xù)了一個(gè)鐘,后半段基本上都沒有面什么了咆爽,基本上就是聊聊梁棠,解了我蠻多困惑的置森。我覺得這些談話的收獲遠(yuǎn)大于面試。
作為一個(gè)新人符糊,常常會(huì)感覺要學(xué)的太多凫海,顧不過來。
看到感興趣的就試一下男娄。真正讓你記住和印象深刻的都是在你在項(xiàng)目中遇到的問題行贪,所以還沒有遇到的問題就不要去想解決(本人是一個(gè)特別喜歡瞎想的人==)新人去大公司好還是小公司好
其實(shí)新人來說的話,都沒有關(guān)系模闲。雖然大公司有更好的平臺(tái)建瘫,但是所有的東西都是包裝好的,實(shí)踐起來的時(shí)候尸折,底層技能要求沒那么大暖混,業(yè)務(wù)和流程規(guī)范會(huì)更好;但是小公司的話翁授,所有問題都是自己解決,所以成長(zhǎng)起來會(huì)更快晾咪。但是很多問題只有用戶到達(dá)一定數(shù)量級(jí)才能遇到啊
還沒有遇到的問題就不要想著解決收擦,做好當(dāng)下的事情,不要著急谍倦。平時(shí)多去一些分享會(huì)塞赂,拿拿大牛的聯(lián)系方式,有問題就聯(lián)系解惑昼蛀。
本來還想問為什么會(huì)選擇在騰訊工作的(因?yàn)槊嬖嚱?jīng)常被問到)一緊張又忘了==
第一次掛面試還蠻開心宴猾。這段時(shí)間準(zhǔn)備各種面試,并沒有拿到任何offer叼旋,內(nèi)心氣餒的很仇哆,聊著聊著也解開了一些心結(jié)。奔波于各種面試中夫植,一直為結(jié)果沮喪讹剔,甚至對(duì)于從事前端也有些失去信心。但是其實(shí)整個(gè)準(zhǔn)備面試和面試的過程中详民,自己也終于有空去弄懂很多之前想要弄懂的東西延欠,面試的時(shí)候暴露出來的問題,技術(shù)類也好沈跨,面試表現(xiàn)或是性格問題都好由捎,經(jīng)過反思后,自己也比一直忙著做項(xiàng)目做成果的時(shí)候成長(zhǎng)了不少饿凛。
并不是一個(gè)有天賦的人狞玛,但是愿意做一只勤奮的程序猿软驰。