Web前端工程師面試題1-1

1.和後端人員是如何配合工做的?前端

  做爲前端人員,主要是提出需求,說清楚前端要的接口效果。好比說完成一個註冊登陸功能就須要後端來給咱們提供註冊登陸的接口,咱們在地址上傳遞一個參數過去,在用接口時根據這個參數來判斷時登陸仍是註冊,根據後端傳過來的數據能夠判斷是註冊成功仍是註冊失敗es6

2.ES6相關問題後端

  1)const arr=[1,2,3]    arr[0]=5;能夠成功修改arr[0]的值嗎?數組

  能夠,首先const是  1 ) .定義常量的關鍵字,一旦聲明瞭變量就必須初始化  2 ) .const與let同樣,只在塊級做用域內有效 3 ) .const聲明的變量不會提高,存在暫時性死區,只能在聲明以後使用,與let同樣不能夠重複聲明 4 ).const實際上保證的並非變量的值不能改動,而是變量所指向的那個內存地址不得改動函數

  基於以上的第4點就能夠得出這句話不會報錯,並且可以成功更改數組中第一項的值this

  2)關於堆和棧spa

  JavaScript中變量分爲基本類型和引用類型。基本類型就是保存在棧內存中的簡單數據段,而引用類型指的是那些保存在堆內存中的對象rest

  基本類型:基本類型有Undefined   Null   Boolean   Number  String,這些類型在內存中分別佔有固定大小的空間,他們的值保存在棧空間對象

  引用類型:引用類型,值的大小不固定,棧內存中存放地址指向堆內存中的對象。也就是說,棧內存中存放的是該對象的訪問地址,在堆內存中爲這個值分配空間。因爲這種值得大小是不固定的,所以不能把他們保存到棧中。可是內存地址大小是固定的,因而能夠把內存地址保存到棧中。當查詢引用類型的變量時,先從棧中讀取其內存地址,他經過的地址找到堆中的值。這種就叫作按引用訪問。blog

  棧:存放基本類型,堆:存放引用類型。  基本類型在當前執行環境結束時銷燬,引用類型不會隨執行環境結束而銷燬,只有當全部引用它的變量不存在時這個對象纔會被垃圾回收機制回收

  好比 :var x = {name:"aaa"};

     var obj1 = x;

     var obj2 = x;

     obj1.name = "bbb";//x,obj1,obj2的name值都會改變

     obj1 = {name:"bbb"}//這裏obj1從新又開闢了一個空間,因此只有obj1的name值改變了

  3)怎麼鎖定堆中的數據?

  Object.freeze(a);鎖定以後,數組的值將不能夠修改。被凍結對象自身的全部屬性都不可能以任何方式被修改

  4)ES6中有多少種定義變量的方法?

  一共有6種:var function let const import class

  5)js中的數據類型

  js中包括String Number Boolean Undefined Null五種基本類型和Object複雜數據類型

  6)es6中的解構賦值

  例:

    

    

    

    在解構賦值中,只有缺省值嚴格的等於(===)undefined時,纔會使用,也就是說b:undefined時  輸出b=3

  7)有關箭頭函數的this指向

  箭頭函數和普通函數的區別:箭頭函數是匿名函數,不能做爲構造函數,不能使用new。  箭頭函數不綁定arguements,取而代之用rest參數...解決。 箭頭函數不綁定this,會捕獲其所在的上下文的this值,做爲本身的this值,任何方法都不能改變其this指向。   箭頭函數沒有原型屬性。  箭頭函數只能在聲明以後調用,普通函數聲明以前就能夠調用。

  

  要說明一點是:只有函數被調用時纔會有this指向,這個this指向是window

 

  

  這裏的this指向document,執行時,箭頭函數找離他最近的函數,那個函數的this指向就是箭頭函數的this指向

相關文章
相關標籤/搜索