1. 程式人生 > >今日頭條前端面試總結

今日頭條前端面試總結

這些問題是我在頭條的一面面試中被面試官問到的,總結出來,希望對你有用 ^_^

1.行標籤都有哪些?特點?

img、span、a、sub、sup、em、i、b、strong

設定width、heigh不起作用

margin、padding垂直方向不起作用,水平方向上有效

2.img標籤

因為上面說了行元素設定寬高是不起作用的,所以才會被問到這個,我就解釋了為什麼它是行元素,因為在使用中,img元素中包含圖片的話,它是按照一行排列的,下面的內容是我之後查閱得到的:

img元素是可替換內聯元素,可替換就是瀏覽器根據元素的標籤和屬性,來決定元素的具體顯示形式,img、input、textarea、select、object都是替換元素,替換元素一般有內在尺寸,所以具有width/height,可以設定,當不指定img的width和height的時候,就按照其內在尺寸顯示,也就是圖片被儲存的時候的寬度和高度

參考這裡

3.實現一個響應式的正方形

剛開始我答的是width、height設定為百分比,或者用em、rem這樣的單位

然後面試官說的是,裡面是有內容的,這樣子呈現出正方形,哦,看來剛開始被自己想的拐跑了,然後我就想到了flex,flex中的專案的排列方式設定一下

4.跨域

跨域這個問題,jsonp、domain、webSocket、CORS(請求頭Origin欄位,伺服器判斷,返回三個Accept-control-*欄位)

5.快取瞭解嗎?

跟快取相關的HTTP請求頭中有三個欄位:Cache-control、Expires(指定具體過期日期)、Last-Modified(驗證資源是否過期)。

關於優先順序,Cache-Control比Expires可以控制的多一些, 而且Cache-Control會重寫Expires的規則Cache-Control比Expires可以控制的多一些, 而且Cache-Control會重寫Expires的規則,Cache-Control是關於瀏覽器快取的最重要的設定,因為它覆蓋其他設定,比如 Expires 和 Last-Modified

Mainfest可以快取一個應用,pwa中有Mainfest和Service Worker可以實現快取

參考這裡

6.XSS是什麼說一下?

跨站指令碼攻擊,這些可執行的指令碼由攻擊者提供,最終為使用者瀏覽器載入,不同於大多數攻擊,有儲存型和反射型,防禦方式,編碼,過濾,解碼

7.CSRF瞭解嗎?

跨站請求偽造(攻擊者盜用你的身份,以你的身份傳送惡意請求),一次CSRF攻擊的步驟:

  • 登入受信任的網站A,並在本地生成cookie
  • 在不登出A的情況下,訪問危險網站B

防禦的方法:

總的思想在客戶端頁面增加偽隨機值

  • Cookie Hashing 所有的表單都包含一個偽隨機值
  • 驗證碼
  • 不同的表單包含一個不同的偽隨機值

8.一個列表,假設有100000個數據,這個該怎麼辦?

剛開始想到的就是分頁的原理,就是每次伺服器端返回一定數目的資料,然後面試官說假如到了100頁,客戶端要快取這麼多資料嗎?這個資料多的話,瀏覽器肯定是吃不消的,然後我就說了這樣的話,可以在顯示某一屏的時候,快取下一屏,這樣體驗好一點

9.倒計時怎麼做?

利用Date物件

    <div>
        <span id="day"></span><span id="hour"></span><span id="minutes"></span><span id="second"></span></div>
    setInterval(function() {
        timer();
    }, 1000);

    function timer() {
        var time = (new Date(2017, 8, 24, 14, 46, 0)) - (new Date());

        var day = parseInt(time / 1000 / 60 / 60 / 24, 10);
        var hour = parseInt(time/ 1000/ 60/ 60 % 24, 10);
        var min = parseInt(time / 1000 /60 % 60, 10);
        var second = parseInt((time / 1000) % 60, 10);

        document.getElementById('day').innerHTML = day;
        document.getElementById('hour').innerHTML = hour;
        document.getElementById('minutes').innerHTML = min;
        document.getElementById('second').innerHTML = second;
    }

其中,因為setInterval函式也是存在著延遲的,所以就需要矯正時間,關於矯正時間,我當時主要從客戶端出發,但是後面想到可以利用與伺服器溝通,獲得時間

10.說說Vue框架,對於物件引用的情況呢?

說了雙向繫結、vue-router、vue-resource,關於物件引用的情況說了陣列的兩種情況下的處理(設定值和改變長度)

11.演算法題,對於一個數組,純數字,求和等於m

當時在回答這道題的時候,可能表述的不夠清楚,後面自己也重新做了思考,也出了它的程式碼

#include<stdio.h>
#include<stdlib.h>

#define N 1000
int a[N];
int c = 0;
int n;
int x[N] = {0}; 
int sum = 0;
int rest = 0;

int traceBack(int i) {
    if(sum == c) {
        return 1;
    }
    if(i > n) {
        return 0;
    } 

    rest -= a[i];
    if(sum + a[i] <= c) {
        x[i] = 1;
        sum += a[i];
        if(traceBack(i+1)) {
            return 1;
        }
        sum -= a[i];
    }

    if(sum + rest >= c) {
        x[i] = 0;
        if(traceBack(i + 1)) {
            return 1;
        }
    }

    rest += a[i];
    return 0;   
}

void main(void) {
    scanf("%d%d", &n, &c);
    int i;
    for(i = 0; i < n; i++) {
        scanf("%d", &a[i]);
        rest += a[i];
    }

    if(traceBack(0)) {
        for(i = 0; i < n; i++) {
            if(x[i]) {
                printf("%d ", a[i]);    
            }
        }
    }
}

相關推薦

今日頭條前端面試總結

這些問題是我在頭條的一面面試中被面試官問到的,總結出來,希望對你有用 ^_^ 1.行標籤都有哪些?特點? img、span、a、sub、sup、em、i、b、strong 設定width、heigh不起作用 margin、padding垂直方

今日頭條前端面試過程與面試題

頭條的面試業界最難,為準備頭條的面試,我刷了好幾天的題目,雖然最後被拒,但是在準備過程中知道了很多開發中被忽略的原理問題。這給我之後的面試打下了很好的基礎。 到了頭條總部,前臺給了一套題。三道簡答,三道程式設計題 簡答題: 什麼是函式節流,為什麼要使用函

今日頭條前端面試-2018 03 23

                     不出意外,今天頭條一面就被刷了。也正是這次面試,讓我真正明白了自己弱點在哪裡。哎,時間還有,好好學習天天向上!接下來就總結一下我遇到的這些問題吧。 整次面試40多分鐘,深深的受到了來自大佬的打擊。 (OS:找個實習真的難…)你有沒有拿到其他公司的offer沒有….這是

今日頭條前端面試-2018.03.23

不出意外,今天頭條一面就被刷了。也正是這次面試,讓我真正明白了自己弱點在哪裡。哎,時間還有,好好學習天天向上!接下來就總結一下我遇到的這些問題吧。 整次面試40多分鐘,深深的受到了來自大佬的打擊。 (OS:找個實習真的難…) 你有沒有拿到其他公司的of

今日頭條實習面試總結

1、實現陣列扁平化 陣列扁平化是指將一個多維陣列變為一維陣列 [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] (1)toString & split或者jion & split 呼叫陣列的toStr

前端面試總結(css)

pan html元素 內容 brush bre 省略號 import als earlier 表格:Cellspacing:單元格間距,cellpadding:單元格內容之間的空隙,colspan:合並列數,rowspan:合並行數,表頭caption,border-sp

前端面試總結(JavaScript)

javascrip 類型 作用域鏈 word doc locals session jsonp 作用域 ajax優缺點 json和jsonP區別 省市聯動 全選 數組去重: 如何消除一個數組裏面重復的元素? // 方法一: var arr1 =[1,2,2,2,3,3,3

Web前端面試總結

tcs 一個 網站 ack 平時 工程師 htm javascrip itl Base Prepration: 作為一名Web前端開發工程師,應該要有自己的個人作品(如個人網站之類),博客,和所關註的用於學習和分享Web前端技術的社區或貼吧(如github, w3cs

前端面試總結

狀態管理 var 面試 的區別 vue 雙向 iframe 雙向綁定 跨域 第一家(360) vue雙向綁定的原理 es6 var 和let的區別 前端數據可視化 柵格化 vueX的原理,狀態管理器,怎麽存值,怎麽取值,怎麽改變值 布局 第二家(***) 第三家(好未來)

web前端面試總結(2)

10.27 面試總結與分享(清宇網路) 面試問題 自我介紹 nodejs靜態伺服器路由前端使用Nodejs來寫的麼 整個專案實現的思路,都實現了哪些模組 使用nigix代理解決埠問題 對於地圖的使用,有沒有用過地圖自定義的東西 使用vue的時間,

前端面試」2018前端面試總結,看完弄懂,工資少說加3K

前端問題記錄 HTML相關 CSS相關 JAVASCRIPT相關 DOM相關 HTTP相關 VUE相關 演算法相關 網路安全相關 webpack相關 其他 Html相關 1 html語義化 意義:根據內

今日頭條筆試面試大全

整理了一下今日頭條往屆筆試面試題,希望對大家有幫助: 超級有用的面試題:Java常見面試題    常見演算法面試題   資料庫常見面試題  作業系統常見面試題   C/C++常見面試題  大資料常見面試&n

2018年前端面試總結

dset ner urn content 狀態碼 大量 加載 解構賦值 t對象 2018年前端面試總結 再有兩個月,2018就快過完了,因而有必要在年末對2018年的前端學習做一個總結,本文主要從前端面試中的一些基礎知識來對前端進行相關的總結。本文根據網絡面試題進行總結。

前端面試總結及建議

最近,由於專案組剛成立不久,團隊處於天地初開的混沌狀態,人員配置不齊,急需一大股新鮮血液融入,為此,開啟了一段時間與求職面試者的博弈之路! 如今的IT大環境,似乎每個公司一年四季都處於招人狀態,而同時又有一大批無論是離職還是在職人員期許找一個環境待遇更佳的公司入職;如此的供

2019 web 前端面試總結(內附面經)

這篇文章不適合拿到 BAT 的大佬及自制力特別差的人 本文只是提供複習的思路,以及我自己的一些面經,並沒有具體的題目 基本情況 據說先把 offer 亮出來才能吸引你們看下去。目前一共有五個。分別是順豐,拼多多,遠景智慧,老虎證券和貝殼。其實拿到拼多多以後很

分享我的前端面試總結

為什麼會離職呢?這是一個問題!可能原因更加荒唐,太安逸,太悠閒。我怕自己以後會變得懶惰、懈怠。這裡有我熟悉的、可愛的同事,其實真的不想離開,但是我也知道這是我的一個舒適區,我必須跳出去。 基礎 其中面試餓了麼的時候考察了很多關於css選擇器相關。 1.偽類

2018前端面試總結

HTTP協議是什麼? HTTP協議是超文字傳輸協議的縮寫,英文是Hyper Text Transfer Protocol。是從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。 原理: HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢

前端面試總結(自己總結的)

1.給出一個數組如何去掉重複的項? var arr = [1,2,3,4,5,6,1,5,6]; function removeRepeat(arr) { var i,tempArr = []; for(i in arr){ //一種for迴圈寫法 if(tempA

前端面試總結——http、html和瀏覽器篇

1.http和https https的SSL加密是在傳輸層實現的。 (1)http和https的基本概念 http: 超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服器傳輸超文字到本地瀏覽器的傳輸協議,它

前端面試總結之http、html和瀏覽器

前言:本文是轉載文,文章中的'我'指原作者 1.http和https https的SSL加密是在傳輸層實現的。 (1)http和https的基本概念 http: 超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,是一個客戶端和伺服器端請求和應答的標準(TCP),用於從WWW伺服