前端口試日誌(二)

也許是在6月11號在Boss直聘投的簡歷,6月12號正午收到電話約的口試時刻,剛最先說是13號晚上7點;背面能夠時刻有變,正午來了個電話說改到9-10點;如何說算是第一次口試本身目的公司之一吧,紀錄下不論過沒過,也是一份珍貴閱歷。

  • (口試時刻:2018-6-12 晚上:9.00;時長:1小時11分鐘;公司:6666,(一面))

(一)簡樸的引見下本身

  • 引見的真的很簡樸。。。。。。

(二)一樣平常平凡都是如何進修前端的?

  • me:進修前端的話,我重假如以書本為主、然後是網站視頻、博客、文檔等進修理論,以後再經由歷程代碼實踐。。。
  • H:前端的進修的話平常是得經由歷程實踐的,一樣平常平凡有本身做過項目嗎?
  • me:進修基礎的js階段的話重假如經由歷程完成一些基礎殊效和模塊功用;在進修jQuery的時刻做過一個

(三)做過哪些項目,你在个中重要事情

  • 說了下運用JQuery階段,做過一個比較簡樸的商場;
  • 在打仗React是,也就是近來做的項目是一個完整運用React百口桶搭建的二手商場;
  • 个中重要的事情的話就是擔任前端的大部分事情,包含界面的計劃,另有就是前後端交互等;
  • 預計是一面,以後並沒有很深切的問項目了,直接轉到談練習閱歷。

(四)看你有在淘寶美工的練習閱歷,說說你的事情

  • 當時是在深圳的一家小型的電商公司練習的,重要事情的話,包含一些簡樸的PS圖片處置懲罰;
  • 另有就是商號的代碼美工優化,因為在淘寶和阿里的平台上商號的裝修能夠經由歷程代碼舉行謄寫;然則都邑有對應的運用限定(簡樸的說了下本身的一樣平常事情)

(五)React組件的建立體式格局和區分

  • React組件在本質上就是一個類,建立體式格局能夠說用三種情勢:
  1. React.createClass:是最傳統、兼容性最好的要領,當是相對與其他ES6的建立體式格局來講代碼量偏多;
  2. ES6 class建立:React.Component是以ES6的情勢來建立react的組件的,是React如今極為引薦的建立有狀況組件的體式格局,最終會庖代React.createClass情勢;相關於 React.createClass能夠更好完成代碼復用;
  3. 無狀況組件(直接函數定義):只傳入兩個參數props、context兩個參數;不存在state,沒有性命周期;
  • 說的優缺點不是太細緻,這裏科普下:

1、 無狀況函數式組件

  • 無狀況組件的建立情勢運用一個使代碼的可讀性更好,而且減少了大批冗餘的代碼,精簡至只需一個render要領,大大的增強了編寫一個組件的方便
  • 無狀況組件不會像別的兩種要領一樣在挪用時會建立新實例;它建立時始終保持了一個實例,避免了不必要的檢測和內存分派,坐到了內部的優化;
  • 組件不能接見this對象

    • 無狀況組件因為沒有實例化歷程,所以無法接見組件this中的對象,比方:this.state等均不能接見。
  • 組件無法接見性命周期的要領

2、React.createClass

  • 建立有狀況的組件,這些組件是要被實例化的,而且能夠接見組件的性命周期要領。
  • 平常須要治理組件內部的狀況、運用性命周期要領或許舉行this綁定會運用這類情勢建立組件。

3、React.createClass與React.Component區分

  • 函數this自綁定

    • React.createClass建立的組件,其每一個成員函數的this都有React自動綁定;
    • React.Component建立的組件,其成員函數不會自動綁定this,須要開發者手動bind綁定,不然this不能獵取當前組件實例對象。
  • 組件屬性範例propTypes及其默許props、state屬性設置差別
const ItemComponent = React.createClass({
    propTypes: { 
        name: React.PropTypes.string
    },
     getInitialState(){ 
        return {
            isLogin: false
        }
    },
    getDefaultProps(){ 
        return {
            name: 'li'    
        }
    }
    render(){
        return <div>{this.props.name}</div>
    }
})
//  VS
class ItemComponent extends React.Component {
    static propTypes = {
        name: PropTypes.string
    };

    static defaultProps = {
        name: ''
    };
    constructor(props) {
        super(props)
        this.state = {
             isLogin: false
        }
    }
    render(){
        return <div>{this.props.name}</div>
    }
}

(六)說說React性命周期

(七)React中不論在性命情況下只需挪用了Reader要領,界面都邑從新襯着嗎?

  • 答:不一定
  • 問:為何呢?
  • 答:。。。。(當時沒想到為啥?但問了呢肯定是有坑的)落落的回覆了一點觀點;
  • 解答:React在挪用render要領后只是構建出了假造DOM,以後還會閱歷Diff算法的折衷歷程,找出最小差別樹,然後經由歷程起碼的DOM操縱將其構建到實在的DOM中;
  • 答:(恍悟,原來是問這個意義,趕忙補下)然則在render要領挪用后,我們該是沒有辦法對其舉行襯着的阻撓的;這些歷程只能由React內部掌握。

(八)問個簡樸的CSS基礎,說說相對規劃和相對規劃

  • 恩恩,好好~沒有哄人

(九)問下js基礎,數組的操縱

  • 不會轉變原數組的要領:

    • concat:拼接兩個數組,返回拼接后的數組;
    • filter():吸收一個函數作為參數,數組中每一個元素實行函數,返回實行該函數時返回true的元素構成的數組。
    • map: 返回實行函數后構成的數組;
    • reduce:累加器;
    • slice() 要領返回一個從最先到完畢(不包含完畢)挑選的數組的一部分淺拷貝到一個新數組對象
    • forEach() 要領對數組的每一個元素實行一次供應的函數
    • join() 要領將一個數組(或一個類數組對象)的一切元素連接成一個字符串並返回這個字符串。
  • 會轉變原數組

    • pop()刪除尾部元素,返回刪除的元素;
    • push()增加尾部元素,返回數組長度;
    • shift()刪除頭部元素,返回刪除的元素;
    • unshift()網頭部增加元素,返回長度;
    • splice()增加、刪除,

(十)你如何明白同源戰略?

  • 同源限定重假如為了平安,假如沒有同源限定存在瀏覽器中的cookie等其他數據能夠恣意讀取,差別域下DOM恣意操縱,Ajax恣意請求,這會有很嚴重的平安隱患;
  • 為了庇護差別站點和用戶的隱私平安,個瀏覽器便制訂了同源戰略;
  • 所謂同源即請求協定、域名、端口號完整相同;
  • 平常處理跨域的體式格局經常使用的有JSONP(只支撐 GET 請求)、跨域資源共享CORS(服務器端經由歷程設置Access-Control-Allow-Origin來舉行的)、服務器端設置代辦請求:服務器端不受同源戰略限定

(十一)瀏覽器向服務器發送請求,有哪些請求體式格局

  • 1)GET:獵取數據
  • (2)POST:提交數據
  • (3)HEAD:請求頭信息
  • (4)PUT:上傳文檔到服務器
  • (5)DELETE:刪除長途服務器上的某個文檔
  • (6)OPTION

(十二)你說你經常使用get、和post請求,說說區分

  • 發送的請求數不一樣,get發送一個TCP數據包,post兩個;
  • get向服務器請求數據,數據放於URL后相對不平安、post發送數據相對越發平安點;
  • post數據發送大小大於get;但兩種都邑有限定(瀏覽器和服務器都邑限定)

(十三)狀況碼的話說說301和302的區分?

  • 一個暫時重定向;一個永遠重定向

(十三)簡樸的說說在瀏覽器中輸入一個RUL但顯現頁面的全部歷程?

(十三)問些簡樸的算法,就說說你所曉得的排序算法吧?

  • 冒泡排序
  • 挑選排序
  • 插入排序
  • 合併排序
  • 疾速排序

(十四)關於你個數值(十進制)如何最快的曉得它在二進制中有多少個1

  • 恩恩,直接傳化為二進制就曉得啦?求解?????
  • 給我耐煩的講解了,當時懂了點,如今再多研討下吧

(十五)給你一塊正方體蛋糕,中心恣意位置挖出一個小正方體,如何切一刀將它切成平分的兩半

  • 還好不是太難,想想看……………………

全部歷程CSS、Js沒如何問,覺得側重於框架、收集、算法這些;比擬之前的口試題目沒有許多,就是觸及的比較廣,傾向於問實踐;然後口試官挺好的,差別的或許不足的都邑給指出,給詮釋

  • 說一個星期擺布給效果,恩恩~不過如何數據結構偏弱,補補再說!

也許能想起這麼多了

    原文作者:keywords
    原文地址: https://segmentfault.com/a/1190000015304821
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞