蜜蜂职场文库_久久99久久99_职场求职面试实用的范文资料大全

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

高級前端工程師面試題

時間: 小龍 面試試題

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

  高級前端工程師面試題一

  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 主站蜘蛛池模板: 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 柔性测斜仪_滑动测斜仪-广州杰芯科技有限公司 | 魔方网-培训咨询服务平台 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 菏泽商标注册_菏泽版权登记_商标申请代理_菏泽商标注册去哪里 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 万家财经_财经新闻_在线财经资讯网 | 灌装封尾机_胶水灌装机_软管灌装封尾机_无锡和博自动化机械制造有限公司 | 武汉画册印刷厂家-企业画册印刷-画册设计印刷制作-宣传画册印刷公司 - 武汉泽雅印刷厂 | 间甲酚,间甲酚厂家-山东祥东新材料| 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 北京办公室装修,办公室设计,写字楼装修-北京金视觉装饰工程公司 北京成考网-北京成人高考网 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 |