前端面試題目

1.理解事件原理。es6

首先什麼是事件,事件就是事件是用戶或瀏覽器自身執行的某種動做,如click,load和mouseover都是事件的名字。 那麼什麼是DOM事件流,事件發生時會在元素節點與根節點之間按照特定的順序傳播,路徑所通過的全部節點都會收到該事件,這個傳播過程即DOM事件流。 DOM2級事件規定事件流包括三個階段:事件捕獲階段,處於目標階段,事件冒泡階段; 在事件監聽流中可使用event.stopPropagation()來阻止事件繼續往下流數組

2.ES6瀏覽器

(1)let和const的異同點服務器

相同點:let和const只在聲明所在的塊級做用域內有效;不提高,同時存在暫時性死區,只能在聲明的位置後面使用;不可重複聲明;
         不一樣點:let聲明的是變量;const聲明的是常量。
複製代碼

(2)箭頭函數 ()=>cookie

箭頭函數沒有函數提高
         箭頭函數沒有this,他會捕獲其所在上下文的this值,做爲本身的this值
         箭頭函數不綁定arguments,取而代之用rest參數
         箭頭函數不能做爲構造函數,不能被new,沒有property
         call和apply方法只有參數,沒有做用域
複製代碼

(3)模板字符串 使用反引號``,模板字符串中的變量使用${}處理;session

const a = `hello+${memory.data}`
複製代碼

(4)解析結構app

// 首先有這麼一個對象
複製代碼

const props = { className: 'tiger-button', loading: false, clicked: true, disabled: 'disabled' }函數

// es5
複製代碼

var loading = props.loading;this

var clicked = props.clicked;es5

// es6解析結構寫法
複製代碼

const { loading, clicked } = props;

// 給一個默認值,當props對象中找不到loading時,loading就等於該默認值
複製代碼

const { loading = false, clicked } = props;

//數組也有本身的解析結構
          // es6
複製代碼

const arr = [1, 2, 3];

const [a, b, c] = arr;

// es5
複製代碼

var arr = [1, 2, 3];

var a = arr[0];

var b = arr[1];

var c = arr[2];

3.js中split,map,join方法

string.split()方法用於將字符串分割爲字符串數組
         「hello」.split("") === ["h", "e", "l", "l", "o"]
         
         map()方法生成一個新的數組,arr.map(方法),原數組經過map括號中提供的方式生成新的數組,此方法不改變原數組
         var data = [1, 2, 3, 4];
         var  newData = data.map(function(i){return i*i});
         console.log(newData);   // [1,4,9,16]
         
         join()方法用於將數組中的元素放到一個字符串中
         ["h", "e", "l", "l", "o"].join('') === 'hello'
複製代碼

4.Cookie,sessionStorage,localStorage的異同點

共同點:都儲存在瀏覽器端,同源
         不一樣點: a.cookie在瀏覽器和服務器之間來回傳輸;sessionStorage,localStorage僅在本地保存,不會自動把數據發送給服務器;
                 b.存儲大小限制不一樣,cookie不超過4k,sessionStorage,localStorage能夠達到5M或更大
                 c.數據有效期不一樣,cookie在設置的過時時間以前有效;sessionStorage僅在當前瀏覽器關閉以前有效;localStorage始終有效,窗口或瀏覽器關閉也一直保存,所以用做持久數據
                 d.做用域不一樣:sessionStorage不在不一樣的瀏覽器窗口中共享,即便是同一個頁面;localstorage在全部同源窗口中都是共享的;cookie也是在全部同源窗口中都是共享的 
複製代碼

5.如何獲悉一個對象的具體類型

typeOf,instanceof,contructor
複製代碼

6.js中的prototype屬性

原型屬性prototype使得您有能力向對象添加屬性和方法
          對於原型來講,最重要的一點是理解它的‘實時’性。因爲js中,幾乎全部的對象都是通
          過引用的方式傳遞的,所以咱們所建立的每一個新對象實體中並無一份屬於本身的原型副本,這也就意味着
          咱們能夠隨時修改prototype屬性,而且由同一構造器建立的全部對象的prototype屬性也都會
          同時改變(甚至會影響在修改以前就已經建立的那些對象)複製代碼
相關文章
相關標籤/搜索