日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

腾讯2019春招一面(电话面试)

發布時間:2024/3/24 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯2019春招一面(电话面试) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

騰訊2019春招一面

最近有許多事情,導致博客許久沒更,所以先更個一面壓壓驚

?

這件事情的起源有些曲折,所以先做個背景介紹(推銷自己一波)

本人在讀大三學生一名(非985,211),前段時間不少的互聯網巨頭們開啟了新一輪的春招,本人也去湊了熱鬧。

我當時投簡歷的時候沒注意,直接投了校園招聘,但是我發現我的簡歷直接就灰掉了,意思就是沒有進入下一輪。

這時我才發現今年的校招沒開,開的是暑期實習(望大家注意),然后我就沒報希望了。

?

但是事情的發展出乎了意料,突然前兩天打電話給我要面試,但是在官網上又查不到,這應該就是大家說的不走流程的面試。

?

話不多說,進入面試內容環節

面試內容:

  • cookie的作用
  • cookie安全
  • domain跨域
  • 實現跨域
  • http2
  • Tcp連接過程(3次握手,4次揮手)
  • DNS解析
  • promise
  • DOM事件流
  • 事件循環

  

接下來一點一點來講:

 

Cookie作用:

首先Cookie是什么?

“Cookie”是小量信息,由網絡服務器發送出來以存儲在網絡瀏覽器上,從而下次這位獨一無二的訪客又回到該網絡服務器時,可從該瀏覽器讀回此信息。這是很有用的,讓瀏覽器記住這位訪客的特定信息,如上次訪問的位置、花費的時間或用戶首選項(如樣式表)。Cookie 是個存儲在瀏覽器目錄的文本文件,當瀏覽器運行時,存儲在 RAM 中。一旦你從該網站或網絡服務器退出,Cookie 也可存儲在計算機的硬驅上。當訪客結束其瀏覽器對話時,即終止的所有 Cookie
一般來說Cookie在如圖所示的地方

這是百度的一個http請求所設置的Cookie

?

通常來說Cookie保存的數據應該是使用頻繁,但卻不機密的內容

因為Cookie的安全性不太好

為什么呢?因為我們能夠很輕易地獲取Cookie中的內容,甚至連抓包都不用,瀏覽器中就能獲取到

如下所示

由于Cookie和Session都存在跨域問題,自然面試官的第二個問題,就是跨域了

?

跨域

首先是跨域的方法:

  • CORS?
  • Jsonp
  • Hash
  • Domain
  • PostMessage H5新增
  • Websocket
  • 下面對這些方法做一個簡單的介紹,具體步驟不過多闡述,希望詳細了解的朋友請自行百度

  • CORS
    • 由后端控制,需添加一系列的允許跨域的http頭
    • 一般用于Ajax、Fetch等異步請求的跨域
  • Jsonp  
    • 需要后端配合,將前端所需的數據傳入回調函數
    • 前端在訪問Jsonp的接口時需要傳遞一個回調函數的函數名
    • 該回調函數需在發送請求前就定義完成
    • 由于是通過JS傳輸數據實現,所以當后臺返回值的時候就會將值傳入回調函數并執行
  • Hash
    • 將數據拼接在 url 的 # 部分,也就是 location.hash
  • Domain
    • 這種跨域方式需要跨域的兩個域存在父域子域的關系
    • 通過設置document.domain來讓兩個域處于同一個域消除跨域
  • PostMessage
    • 這種方式是H5新增
    • 通過window.postMessage來發送數據
    • 然后通過 message 事件來監聽
  • Websocket
    • websocket屬于長連接
    • 通過websocket可以跨域訪問數據
  • 聊完了跨域,話題自然就落到了造成跨域問題的 http 協議上

    ?

    HTTP2.0

    首先問的問題是,對HTTP2.0有什么了解?

    ?

    這里給出百度百科的答案:

    ?

    多路復用請求; 對請求劃分優先級; 壓縮HTTP頭; 服務器推送流(即Server Push技術); 以上四點就是HTTP2.0主要改進的地方 HTTP作為TCP的一部分,TCP的內容當然少不了 但是這一部分網上相關的內容已經很多了,這里就不再描述

    DNS解析

    這里面試官問了 DNS 相關的問題

    如果有自己的服務器的小伙伴應該或多或少的有一定的了解。

    一般來說服務器是通過IP來訪問的,那么我們希望訪問一個域名(網址)就是訪問某個服務器,必不可少的步驟就是域名解析;

    也就是說將網址和IP建立一個映射關系,這一過程就叫做DNS解析

    ?

    至于解析的大致過程如下:

    1.現在我有一臺計算機,通過ISP接入了互聯網,那么ISP就會給我分配一個DNS服務器,這個DNS服務器不是權威服務器,而是相當于一個代理的dns解析服務器,他會幫你迭代權威服務器返回的應答,然后把最終查到IP返回給你。

    2.現在的我計算機要向這臺ISPDNS發起請求查詢www.baidu.com這個域名了,(經網友提醒:這里其實準確來說不是ISPDNS,而應該是用戶自己電腦網絡設置里的DNS,并不一定是ISPDNS。比如也有可能你手工設置了8.8.8.8)

    3.ISPDNS拿到請求后,先檢查一下自己的緩存中有沒有這個地址,有的話就直接返回。這個時候拿到的ip地址,會被標記為非權威服務器的應答。

    4.如果緩存中沒有的話,ISPDNS會從配置文件里面讀取13個根域名服務器的地址(這些地址是不變的,直接在BIND的配置文件中),

    5.然后像其中一臺發起請求。

    6.根服務器拿到這個請求后,知道他是com.這個頂級域名下的,所以就會返回com域中的NS記錄,一般來說是13臺主機名和IP。

    7.然后ISPDNS向其中一臺再次發起請求,com域的服務器發現你這請求是baidu.com這個域的,我一查發現了這個域的NS,那我就返回給你,你再去查。

    (目前百度有4臺baidu.com的頂級域名服務器)。

    8.ISPDNS不厭其煩的再次向baidu.com這個域的權威服務器發起請求,baidu.com收到之后,查了下有www的這臺主機,就把這個IP返回給你了,

    9.然后ISPDNS拿到了之后,將其返回給了客戶端,并且把這個保存在高速緩存中

    ?

    Promise

    ES6作為前端發展的趨勢,當然會被問到

    其中著重問的就是 Promise

    自從出現異步請求開始,現在的頁面基本上都會有異步的操作

    ?

    那么Promise作為一個標準的解決異步操作的方案,其重要性自然不言而喻。

    首先第一個問題是:

    ?

    Promise是怎么實現將異步轉為同步的?

    這里說一下我個人的看法,歡迎各位大牛指正。

    首先 Promise 并不會將原本異步的操作轉換為同步操作

    Promise只是用同步的流程來控制異步操作,從而避免回調地獄

    這個過程大致如下:

  • 創建Promise對象
  • 立即執行 Promise 中的代碼
  • 當Promise中的 resolve 方法調用時將 結果和 .then 的回調函數放入JS的異步隊列
  • 執行 Promsie 后面的同步代碼
  • 同步代碼執行完成后,異步隊列將剛才Promise.then的回調函數出隊并執行
  • ?

    第二個問題:Promise.then 中的 Promise對象和之前新建的 Promise 的關系?

    then方法是定義在原型對象Promise.prototype上的

    它的作用是為 Promise 實例添加狀態改變時的回調函數。

    then方法的第一個參數是resolved狀態的回調函數,第二個參數(可選)是rejected狀態的回調函數。

    then方法返回的是一個新的Promise實例(注意,不是原來那個Promise實例)

    ?

    DOM

    這里的問題就是比較基礎的常見問題了

    首先什么是Dom事件流,由于本人前不久還在更這方面的文章所以答起來也算是得心應手。

    這一部分感興趣的朋友可以看我之前的文章,點這里前往

    ?

    然后的問題就是 事件循環了,這個問題算是一個很重要的問題,因為事件循環基本上就是JS的運行機制了

    由于,JS是單線程的,所以不存在真正意義上的異步操作,只是通過特殊的實現手段來達成異步的效果。

  • JS運行時會維護兩個隊列,一個是同步隊列,一個是異步隊列
  • 顧名思義,同步隊列中存放著同步操作,異步隊列放著一些異步操作
  • 代碼運行時,JS會首先運行同步隊列中的內容
  • 當同步隊列中的內容運行完成后,就會從異步隊列中出隊一個操作并將其放入同步隊列
  • 由于此時同步隊列中只有該異步操作,所以該操作此時會執行(定時器實際上就是過了指定時間后將操作放入異步隊列,這也是當異步操作較多時定時器不太準的原因)
  • 此外當JS中的事件觸發時,實際上也就是是將事件的回調操作放入了異步隊列(故此這一運行機制稱為“事件循環’”)
  • ?

    ?

    整個面試過程大概耗時1小時,如果大家有什么問題歡迎留言探討。

    此外,本人找實習中,歡迎大牛們以白菜價將我批發帶走

    ?

    聯系方式:luohaoyu0920@foxmail.com

    ?

    轉載于:https://www.cnblogs.com/lhyxq/p/10736490.html

    總結

    以上是生活随笔為你收集整理的腾讯2019春招一面(电话面试)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。