前端常见面试题
1、你对html5的看法,为什么要在项目中运用它?
h5是新的html标准。他的语义化标签 header footer sidebar article等 对浏览器非常友好,有利于搜索引擎优化。新增的表单控件 num date 等也非常的方便。新增的video audio标签用来做媒体播放也很方便。h5中的媒体查询可以用来做响应式布局。canvas可以再页面中绘图,比如调用百度地图或高德地图的接口,需要使用canvas容器作为画板绘制地图。我在项目中使用h5差不多就这些
2、介绍一下最能体现你能力的项目。
我做过一个XX项目,这个项目是使用vue开发的,使用vue-cli和webpack自动化构建工具,构建的项目。vue做项目就是组件化开发,所以在这个项目里运用了vuex作状态管理,使各个组件间的数据保持一致。使用vue自带的transition动画组件做动画效果。在项目中运用路由钩子对各组件进行访问权限的限定(实现方式是给每一个路由添加meta属性,对login进行标识),比如有些模块需要登录才能访问。使用路由按需加载提高效率。在这个项目里自定义了很多可以运用到别的项目的基础组件,比如:alert提示信息组件、loading组件、星级评分组件、滚动列表组件等。使用vue-lazyload实现了图片懒加载,使用vue-scoller实现了下拉刷新,上拉加载更多等等,大概就是这样
3、你这个项目与同类项目你感觉亮点在哪里?
同类型的项目他们是使用传统方式开发的。我们这个项目是使用vue开发的。与传统的开发方式相比,vue开发的优势还是很明显的。因为传统的开发方式dom节点操作比较多。对节点进行操作会导致浏览器对页面的重绘。但是vue是数据驱动的mvvm框架。并且在2.0中运用了虚拟dom的基数,最大限度的减少了浏览器的重绘。所以运行效率很高。第二vue都是组件化开发的,代码的可维护性更高。而且在项目中我们运用了vuex状态管理,是数据交互的实现变得更加简单。并且路由加载组件运用了按需加载的方式,使得访问效率更高。
4、你们的后端基本是用什么做的?
php做的。我跟他们的配合方式一般是,我这边规定各个接口的json数据结构,然后后端提供数据接口,他们会给我一个数据接口的文档。拿到文档之后,对各个数据接口我首先会用postman测试一下,看是否正常。大概就是这样。
5、你感觉你在项目中占多大一部分?
这个项目是我们整个公司同仁共同努力的结果。在项目上线的过程中,产品运营设计包括前后台开发都付出了巨大的努力,我只是有幸成为了他们的一部分而已。
在开发的过程中,我有意识的让自己承担更多,比如我会要那些有挑战的较为复杂的模块来做,一方面可以为公司贡献更多价值,另一方面也更有利于自己的自己成长。
6.你觉得你为什么值xxK薪资?
首先。我上一份薪资是xxK,并且做了一年多了,这一年多我没有被开掉,说明我最起码是值12k的。但是在这一年中我的基数又有了很大的进步。比如:学会了使用webpack前端自动化构建工具,使用vue vuex等mvvm框架做项目。而且我的自主学习能力很强,对新技术有这浓厚的兴趣,喜欢专研新技术。这保证了我在未来的增值能力。所以您现在签下我一点都不亏,因为我的学习能力保证了我会持续增值。为公司创造更大的价值。
7.用什么做自适应布局?
1> 可以使用媒体查询做响应式页面
2>使用bootstrap的栅格系统
3> 使用 弹性盒模型
8.Angularjs的优点?
1>完善:是一个比较完善的mvc框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器等而且自带了丰富的指令
2>google维护的:谷歌维护的有保障
3>社区活跃
4>可以非常好的和 ionic配合
9.wabpack打包的流程?
我可能没有那么深入的研究,但是我可以使用webpack的一些基本功能。比如通过entry 配置入口文件。output 指定输出的文件。
使用各种loader处理css js image等资源,并将它们编译打包成浏览器可以解析的内容等。
使用npm run dev 运行本地开发环境的项目
npm run build 将项目打包压缩生成生产环境的下的代码
10.nodejs的概念?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
11.rem和em的区别?
都是相对单位。
rem相对于根节点的fontsize
em当使用em单位时,像素值将是em值乘以使用em单位的元素的字体大小。