先簡短的介紹一下我本身吧,我是一個前端學習者,雖然我基礎知識也學了比較好,可是許久不用的知識就像流失的水,很容易就忘。在此次螞蟻金服的電話面試裏面認識到了本身不少不足的地方吧。雖然在阿里內推後的人才觀的問題裏面我以爲本身作的仍是很不錯的,可是在真正的編程題裏面,才發現本身的編程其實須要更加的提高。前端
接下來就分析一下此次螞蟻金服的電話面試的題目吧,其實這些題目我也都知道基本的答案,可是回答的時候終究仍是緊張了,致使不少問題都回答的都很差。vue
若是不想看完,那就記得看看總結吧。java
簡短的介紹一下本身
這個回答,我就簡短的介紹了本身的學校專業,而後學習了什麼樣的專業課,大一大二大三學習編程的歷程。android
爲何要學習前端
對於我我的而言的話,大一在acm集訓隊裏面,以爲總是刷題有點不是很和本身的性格,而後就開始轉向了學習java進而學習了android,後來又因爲一些緣由吧。最後選擇了學習前端。es6
瞭解js的事件嗎?說說js的事件
JavaScript 使咱們有能力建立動態頁面。事件是能夠被 JavaScript 偵測到的行爲。面試
網頁中的每一個元素均可以產生某些能夠觸發JavaScript函數的事件。比方說,咱們能夠在用戶點擊某按鈕時產生一個 onClick事件來觸發某個函數。事件在 HTML 頁面中定義。正則表達式
一些簡單的事件仍是要記得的編程
下面是一個使用 onChange 事件的例子。用戶一旦改變了域的內容,checkEmail() 函數就會被調用。segmentfault
<input type="text" size="30" id="email" onchange="checkEmail()">
綁定事件的方法?
嵌入dom數組
<button onclick="open()">按鈕</button> <script> function open(){ alert(1) } </script>
直接綁定
<button id="btn">按鈕</button> <script> document.getElementById('btn').onclick = function(){ alert(1) } </script>
事件監聽
<button id="btn">按鈕</button> <script> document.getElementById('btn').addEventListener('click',function(){ alert(1) }) //兼容IE document.getElementById('btn').attachEvent('click',function(){ alert(1) }) </script>
ie和w3c綁定事件的標準有沒有不同?
代碼說明吧,ie綁定事件是用attachEvent方法,刪除事件是detachEvent方法
//添加事件監聽兼容函數 function addHandler(target, eventType, handler){ if(target.addEventListener){//主流瀏覽器 addHandler = function(target, eventType, handler){ target.addEventListener(eventType, handler, false); }; }else{//IE addHandler = function(target, eventType, handler){ target.attachEvent("on"+eventType, handler); }; } //執行新的函數 addHandler(target, eventType, handler); } //刪除事件監聽兼容函數 function removeHandler(target, eventType, handler){ if(target.removeEventListener){//主流瀏覽器 removeHandler = function(target, eventType, handler){ target.removeEventListener(eventType, handler, false); } }else{//IE removeHandler = function(target, eventType, handler){ target.detachEvent("on"+eventType, handler); } } //執行新的函數 removeHandler(target, eventType, handler); }
瞭解事件流嗎?事件流的順序是什麼?
用一張圖片解析一下吧
一個完整的JS事件流是從window開始,最後回到window的一個過程
事件流被分爲三個階段(1~ 5)捕獲過程、(5~ 6)目標過程、(6~ 10)冒泡過程
js的基本數據類型
基本數據類型有五種Undefined、Null、Boolean、Number和String,也叫作簡單的數據類型,還有一種複雜的數據類型是Object,但不屬於基本數據類型。
說說字符串經常使用的十個函數
舉下例子吧,其實在控制檯打印一下就有了的
說說數組經常使用的十個函數
這個也舉下例子吧,其實在控制檯打印一下就有了的
談談this是什麼,this表明什麼
this是Javascript語言的一個關鍵字。它表明函數運行時,自動生成的一個內部對象,只能在函數內部使用。隨着函數使用場合的不一樣,this的值會發生變化。可是有一個總的原則,那就是this指的是,調用函數的那個對象。
改變this指向的方法
要想把 this 的值從一個上下文傳到另外一個,就要用 call 或者apply 方法。
// 一個對象能夠做爲call和apply的第一個參數,而且this會被綁定到這個對象。 var obj = {a: 'Custom'}; // 這個屬性是在global對象定義的。 var a = 'Global'; function whatsThis(arg) { return this.a; // this的值取決於函數的調用方式 } whatsThis(); // 'Global' whatsThis.call(obj); // 'Custom' whatsThis.apply(obj); // 'Custom'
在a標籤裏面添加一個點擊事件,那麼點擊事件的this指向的是什麼。
<a onclick="alert((function(){return this})());"> Show inner this </a>
這種狀況下,沒有設置內部函數的this,因此它指向global/window對象(即非嚴格模式下調用的函數未設置this時指向的默認對象)。
ES6有哪些新增的東西
這個就太多了,你們能夠看看個人博客瞭解一下簡單的,固然,更多仍是得看看阮一峯的es6教程吧。
說說jq經常使用的一些函數
jq經常使用的函數也就太多了,這裏由於我在簡歷裏面寫了瞭解jq因此才被面到,你們根據本身的理解回答就行了吧。
談談vue的生命週期
這裏給出一張圖片就好,不用問我爲何
vue綁定input數據的方法
回答:v-model
<div id="app"> <p>{{ message }}</p> <input v-model="message"> </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) </script>
談談http協議
HTTP(HyperText TransportProtocol)是超文本傳輸協議的縮寫,它用於傳送WWW方式的數據,關於HTTP協議的詳細內容請參考RFC2616。HTTP協議採用了請求/響應模型。客戶端向服務器發送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶信息和內容的相似於MIME的消息結構。服務器以一個狀態行做爲響應,響應的內容包括消息協議的版本,成功或者錯誤編碼加上包含服務器信息、實體元信息以及可能的實體內容。
一般HTTP消息包括客戶機向服務器的請求消息和服務器向客戶機的響應消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個指示頭域結束的空行和可選的消息體組成。HTTP的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每一個頭域由一個域名,冒號(:)和域值三部分組成。域名是大小寫無關的,域值前能夠添加任何數量的空格符,頭域能夠被擴展爲多行,在每行開始處,使用至少一個空格或製表符。
主要還得記得http中Status-Code的第一個數字定義響應的類別,後兩個數字沒有分類的做用。第一個數字可能取5個不一樣的值:
阿里的面試很基礎,並且問的問題基本都是你簡歷上寫的技術,因此,簡歷上面寫的東西,千萬要再熟悉一次,並且若是你還擅長什麼,面試官都會很樂意去問你問題的,能夠跟他們向你會的領域去問。