国产精品久久久久影院老司_亚洲福利在线视频_中国女警察一级毛片视频_亚洲一区在线免费视频_久久亚洲第一_狠狠干五月

蜜蜂職場文庫 > 面試試題 >

高級前端工程師面試題

時間: 小龍 面試試題

  對于高級前端工程師而言,想要取得面試成功,那么提前了解面試題很重要。下面小編已經為你們整理了高級前端工程師面試題,一起來看看吧。

  高級前端工程師面試題一

  1、什么是盒子模型?

  在網頁中,一個元素占有空間的大小由幾個部分構成,其中包括元素的內容(content),元素的內邊距(padding),元素的邊框(border),元素的外邊距(margin)四個部分。這四個部分占有的空間中,有的部分可以顯示相應的內容,而有的部分只用來分隔相鄰的區域或區域。4個部分一起構成了css中元素的盒模型。

  2、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?

  行內元素:a、b、span、img、input、strong、select、label、em、button、textarea

  塊級元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

  空元素:即系沒有內容的HTML元素,例如:br、meta、hr、link、input、img

  3、CSS實現垂直水平居中

  一道經典的問題,實現方法有很多種,以下是其中一種實現:

  HTML結構:

  CSS:

  .wrapper{position:relative;}

  .content{

  background-color:#6699FF;

  width:200px;

  height:200px;

  position: absolute; //父元素需要相對定位

  top: 50%;

  left: 50%;

  margin-top:-100px ; //二分之一的height,width

  margin-left: -100px;

  }

  4、簡述一下src與href的區別

  href 是指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,用于超鏈接。

  src是指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置;在請求src資源時會將其指向的資源下載并應用到文檔內,例如js腳本,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當前標簽內。這也是為什么將js腳本放在底部而不是頭部。

  5、什么是CSS Hack?

  一般來說是針對不同的瀏覽器寫不同的CSS,就是 CSS Hack。

  IE瀏覽器Hack一般又分為三種,條件Hack、屬性級Hack、選擇符Hack(詳細參考CSS文檔:css文檔)。例如:

  // 1、條件Hack

  // 2、屬性Hack

  .test{

  color:#090\9; /* For IE8+ */

  *color:#f00; /* For IE7 and earlier */

  _color:#ff0; /* For IE6 and earlier */

  }

  // 3、選擇符Hack

  * html .test{color:#090;} /* For IE6 and earlier */

  * + html .test{color:#ff0;} /* For IE7 */

  高級前端工程師面試題二

  1、簡述同步和異步的區別

  同步是阻塞模式,異步是非阻塞模式。

  同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那么這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;

  異步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。

  2、px和em的區別

  px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。em得值不是固定的,并且em會繼承父級元素的字體大小。

  瀏覽器的默認字體高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

  3、什么叫優雅降級和漸進增強?

  漸進增強 progressive enhancement:

  針對低版本瀏覽器進行構建頁面,保證最基本的功能,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。

  優雅降級 graceful degradation:

  一開始就構建完整的功能,然后再針對低版本瀏覽器進行兼容。

  區別:

  a. 優雅降級是從復雜的現狀開始,并試圖減少用戶體驗的供給

  b. 漸進增強則是從一個非常基礎的,能夠起作用的版本開始,并不斷擴充,以適應未來環境的需要

  c. 降級(功能衰減)意味著往回看;而漸進增強則意味著朝前看,同時保證其根基處于安全地帶

  4、瀏覽器的內核分別是什么?

  IE: trident內核

  Firefox:gecko內核

  Safari:webkit內核

  Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核

  Chrome:Blink(基于webkit,Google與Opera Software共同開發)

  高級前端工程師面試題三

  1、怎樣添加、移除、移動、復制、創建和查找節點?

  1)創建新節點

  createDocumentFragment() //創建一個DOM片段

  createElement() //創建一個具體的元素

  createTextNode() //創建一個文本節點

  2)添加、移除、替換、插入

  appendChild() //添加

  removeChild() //移除

  replaceChild() //替換

  insertBefore() //插入

  3)查找

  getElementsByTagName() //通過標簽名稱

  getElementsByName() //通過元素的Name屬性的值

  getElementById() //通過元素Id,唯一性

  2、實現一個函數clone,可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值復制。

  /**

  * 對象克隆

  * 支持基本數據類型及對象

  * 遞歸方法

  */

  function clone(obj) {

  var o;

  switch (typeof obj) {

  case "undefined":

  break;

  case "string":

  o = obj + "";

  break;

  case "number":

  o = obj - 0;

  break;

  case "boolean":

  o = obj;

  break;

  case "object": // object 分為兩種情況 對象(Object)或數組(Array)

  if (obj === null) {

  o = null;

  } else {

  if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") {

  o = [];

  for (var i = 0; i < obj.length; i++) {

  o.push(clone(obj[i]));

  }

  } else {

  o = {};

  for (var k in obj) {

  o[k] = clone(obj[k]);

  }

  }

  }

  break;

  default:

  o = obj;

  break;

  }

  return o;

  }

  3、如何消除一個數組里面重復的元素?

  // 方法一:

  var arr1 =[1,2,2,2,3,3,3,4,5,6],

  arr2 = [];

  for(var i = 0,len = arr1.length; i< len; i++){

  if(arr2.indexOf(arr1[i]) < 0){

  arr2.push(arr1[i]);

  }

  }

  document.write(arr2); // 1,2,3,4,5,6

  4、想實現一個對頁面某個節點的拖曳?如何做?(使用原生JS)。

  5、在Javascript中什么是偽數組?如何將偽數組轉化為標準數組?

  偽數組(類數組):無法直接調用數組方法或期望length屬性有什么特殊的行為,但仍可以對真正數組遍歷方法來遍歷它們。典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數組。可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。

  function log(){

  var args = Array.prototype.slice.call(arguments);

  //為了使用unshift數組方法,將argument轉化為真正的數組

  args.unshift('(app)');

  console.log.apply(console, args);

  };

  6、Javascript中callee和caller的作用?

  caller是返回一個對函數的引用,該函數調用了當前函數;

  callee是返回正在被執行的function函數,也就是所指定的function對象的正文。

  7、請描述一下cookies,sessionStorage和localStorage的區別

  sessionStorage用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用于持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

  web storage和cookie的區別

  Web Storage的概念和cookie相似,區別是它是為了更大容量存儲設計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。

  除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作為HTTP規范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數據而生。

  8、手寫數組快速排序

  關于快排算法的詳細說明,可以參考阮一峰老師的文章快速排序

  “快速排序”的思想很簡單,整個排序過程只需要三步:

  (1)在數據集之中,選擇一個元素作為”基準”(pivot)。

  (2)所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。

  (3)對”基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。

  
看了“高級前端工程師面試題”

49522 主站蜘蛛池模板: 免费看成年人视频在线 | a视频在线免费观看 | 成人 在线 | 国产免费一区二区三区视频 | 日韩黄色一级视频 | 中国产一级毛片 | 日日操夜夜操视频 | 黄网站在线播放视频免费观看 | 欧美成人黄色小视频 | 亚洲精品com | 久久久久久久一区二区 | 成人福利视频在线 | 一级免费在线视频 | av成人在线电影 | 中文字幕在线观看视频一区 | 手机视频在线播放 | 欧美亚洲综合网 | 久久国产精品无码网站 | 未成年人在线观看 | 久久噜噜噜精品国产亚洲综合 | 泰剧19禁啪啪无遮挡大尺度 | v11av在线视频成人 | 亚洲网站免费看 | 嗯哈~不行好大h双性 | 亚洲成人在线视频网 | 久久人人爽人人爽人人片av高清 | 欧美a级在线免费观看 | 国产精品亚洲精品日韩已方 | 日本特级a一片免费观看 | 黄色片免费在线 | 欧美一级aa免费毛片 | 毛片视频在线免费观看 | 国产女同疯狂激烈互摸 | 牛牛热这里只有精品 | av性色全交蜜桃成熟时 | 九九热视频在线免费观看 | 久久人人97超碰国产公开结果 | 日韩欧美电影在线观看 | 欧洲成人一区二区 | 精品国产专区 | 国产一国产一级毛片视频在线 |