Web前端工程师面试题及答案.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Web前端工程师面试题及答案

一、基础核心题

问:说说你对HTML语义化的理解,实际项目中怎么用?

答:语义化就是让标签有“含义”,不是全用div。比如头部用header、导航用nav、文章主体用article,好处是SEO友好(有哪些信誉好的足球投注网站引擎能识别内容结构),也方便屏幕阅读器(无障碍),后期维护看标签就知道这块是啥功能。

实际项目里,比如做博客详情页,标题用h1(一个页面只一个),作者信息用address,段落用p,列表类的相关推荐用ul,不用div套span硬凑结构。

问:CSS盒模型有两种,实际开发中怎么区分和控制?

答:两种是标准盒模型和IE盒模型,区别在width/height包含的范围。标准盒模型(默认)的宽高只算内容区(content),padding和border会撑大盒子;IE盒模型的宽高包含content+padding+border。

控制用box-sizing属性:content-box是标准,border-box是IE。实际开发中写样式重置时,一般会全局设*{box-sizing:border-box;},比如做表单输入框,设了宽高后加padding不会变形,不用再算减去padding的数值,省事儿。

问:JS里Promise的三种状态是什么?实际用的时候怎么处理异步错误?

答:三种状态是pending(等待)、fulfilled(成功)、rejected(失败),状态一旦变了就改不了。比如调接口拿数据,发起请求时是pending,拿到数据变fulfilled,接口报错变rejected。

处理错误常用两种方式:一是在.then()后面跟.catch(),所有异步错误(比如接口404、数据解析错)都会进catch;二是用async/await时,包在try-catch里,比如:

asyncfunctiongetList(){

try{

constres=awaitaxios.get(/api/list);

returnres.data;

}catch(err){

console.log(请求错了:,err);//这里处理错误,比如提示用户

}

}

实际项目里,catch里不能只打印日志,还要给用户反馈,比如弹个“加载失败,请重试”的提示。

二、框架应用题(React/Vue)

问:React的useEffect钩子,依赖项空数组和不写依赖项有啥区别?实际用的时候踩过坑吗?

答:区别大了。依赖项空数组[]时,effect只在组件挂载时执行一次,卸载时执行return里的清理函数,类似class组件的componentDidMount;不写依赖项的话,组件每次渲染(比如props、state变了)都会重新执行effect,容易出性能问题。

踩过坑,比如之前做定时器,依赖项没写定时器ID,导致组件更新时重复创建定时器,页面卡了。后来加上依赖项,并且在return里清定时器,就好了:

useEffect(()={

consttimer=setInterval(()={/*逻辑*/},1000);

return()=clearInterval(timer);//卸载时清定时器

},[]);//空数组,只执行一次

问:Vue2和Vue3的响应式原理有啥区别?实际项目中选哪个版本?

答:Vue2用的是Object.defineProperty,只能监听对象的属性,数组的话要重写push、pop这些方法才能监听;Vue3用的是Proxy,能直接监听整个对象/数组,不用重写数组方法,还能监听新增属性、删除属性。

新项目肯定选Vue3,比如用CompositionAPI封装复用逻辑比Vue2的mixins干净,不会有命名冲突。老项目如果要升级,得考虑第三方组件兼容性,比如有些UI库还没完全适配Vue3,就先维持Vue2。

三、工程化与性能题

问:webpack里loader和plugin的区别?实际项目中常用哪些?

答:loader是处理文件转换的,比如把ES6转ES5用babel-loader,把SCSS转CSS用sass-loader+css-loader;plugin是做更上层的功能,比如生成HTML文件用HtmlWebpackPlugin,压缩代码用TerserPlugin。

常用的loader:babel-loader(JS兼容)、style-loader(把CSS插入DOM)、file-loader(处理

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档