如何评价AngularJS和BackboneJS
-
backbone具有依赖性,依赖underscore.js。Backbone + Underscore + jQuery(or Zepto)就比一个AngularJS 多出了2 次HTTP请求.
-
Backbone的Model没有与UI视图数据绑定,而是需要在View中自行操作DOM来更新或读取UI数据。AngularJS与此相反,Model直接与UI视图绑定,Model与UI视图的关系,通过directive封装,AngularJS内置的通用directive,就能实现大部分操作了,也就是说,基本不必关心Model与UI视图的关系,直接操作Model就行了,UI视图自动更新
-
AngularJS的directive,你输入特定数据,他就能输出相应UI视图。是一个比较完善的前端MVW框架,包含模板,数据双向绑定,路由,模块化,服务,依赖注入等所有功能,模板功能强大丰富,并且是声明式的,自带了丰富的 Angular 指令
谈谈你对重构的理解
-
网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变UI的情况下,对网站进行优化, 在扩展的同时保持一致的UI
-
对于传统的网站来说重构通常是:
-
表格(table)布局改为DIV+CSS
-
使网站前端兼容于现代浏览器(针对于不合规范的CSS、如对IE6有效的)
-
对于移动平台的优化
-
针对于SEO进行优化
-
深层次的网站重构应该考虑的方面
-
说说你对前端架构师的理解
- 负责前端团队的管理及与其他团队的协调工作,提升团队成员能力和整体效率;带领团队完成研发工具及平台前端部分的设计、研发和维护; 带领团队进行前端领域前沿技术研究及新技术调研,保证团队的技术领先负责前端开发规范制定、功能模块化设计、公共组件搭建等工作,并组织培训
什么样的前端代码是好的
- 高复用低耦合,这样文件小,好维护,而且好扩展。
谈谈你对webpack的看法
WebPack 是一个模块打包工具,你可以使用WebPack管理你的模块依赖,并编绎输出模块们所需的静态文件。它能够很好地管理、打包Web开发中所用到的HTML、Javascript、CSS以及各种静态文件(图片、字体等),让开发过程更加高效。对于不同类型的资源,webpack有对应的模块加载器。webpack模块打包器会分析模块间的依赖关系,最后 生成了优化且合并后的静态资源
页面重构怎么操作?
-
网站重构:不改变UI的情况下,对网站进行优化,在扩展的同时保持一致的UI。
-
页面重构可以考虑的方面:
- 升级第三方依赖
- 使用HTML5、CSS3、ES6 新特性
- 加入响应式布局
- 统一代码风格规范
- 减少代码间的耦合
- 压缩/合并静态资源
- 程序的性能优化
- 采用CDN来加速资源加载
- 对于JS DOM的优化
- HTTP服务器的文件缓存
列举IE与其他浏览器不一样的特性?
- IE 的渲染引擎是 Trident 与 W3C 标准差异较大:例如盒子模型的怪异模式
- JS 方面有很多独立的方法,例如事件处理不同:绑定/删除事件,阻止冒泡,阻止默认事件等
- CSS 方面也有自己独有的处理方式,例如设置透明,低版本IE中使用滤镜的方式
是否了解公钥加密和私钥加密?
- 私钥用于对数据进行签名,公钥用于对签名进行验证
- 网站在浏览器端用公钥加密敏感数据,然后在服务器端再用私钥解密
WEB应用从服务器主动推送Data到客户端有那些方式?
- AJAX 轮询
- html5 服务器推送事件
(new EventSource(SERVER_URL)).addEventListener("message", func);
- html5 Websocket
(new WebSocket(SERVER_URL)).addEventListener("message", func);
你怎么看待 Web App/hybrid App/Native App?(移动端前端 和 Web 前端区别?)
-
Web App(HTML5):采用HTML5生存在浏览器中的应用,不需要下载安装
- 优点:开发成本低,迭代更新容易,不需用户升级,跨多个平台和终端
- 缺点:消息推送不够及时,支持图形和动画效果较差,功能使用限制(相机、GPS等)
-
Hybrid App(混合开发):UI WebView,需要下载安装
- 优点:接近 Native App 的体验,部分支持离线功能
- 缺点:性能速度较慢,未知的部署时间,受限于技术尚不成熟
-
Native App(原生开发):依托于操作系统,有很强的交互,需要用户下载安装使用
- 优点:用户体验完美,支持离线工作,可访问本地资源(通讯录,相册)
- 缺点:开发成本高(多系统),开发成本高(版本更新),需要应用商店的审核
Web 前端开发的注意事项?
- 特别设置 meta 标签 viewport
- 百分比布局宽度,结合 box-sizing: border-box;
- 使用 rem 作为计算单位。rem 只参照跟节点 html 的字体大小计算
- 使用 css3 新特性。弹性盒模型、多列布局、媒体查询等
- 多机型、多尺寸、多系统覆盖测试
在设计 Web APP 时,应当遵循以下几点
- 简化不重要的动画/动效/图形文字样式
- 少用手势,避免与浏览器手势冲突
- 减少页面内容,页面跳转次数,尽量在当前页面显示
- 增强 Loading 趣味性,增强页面主次关系
平时如何管理你的项目?
- 规定全局样式、公共脚本
- 严格要求代码注释(html/js/css)
- 严格要求静态资源存放路径
- Git 提交必须填写说明
如何设计突发大规模并发架构?
- 及时响应(NoSQL缓存)
- 数据安全(数据备份)
- 负载均衡
说说最近最流行的一些东西吧?
- ES6、Node、React、Webpack