大家最关心的 8k-11k
岗位职责:
- 负责pc web网站的重构、调试和维护;
- 负责移动端页面(微信页面、安卓手机浏览器、ios手机浏览器等)的重构、调试和维护;
- 根据产品经理的要求,优化页面体验效果;
- 熟悉浏览器对前端代码支持的特性,输出兼容各浏览器的页面代码,恰当运用html5和产品相结合,提升产品体验;
- 协助设计师实现页面交互,协助研发完成前后端的合并;
- 关注前端前沿技术,在理解产品业务上和开发流程的基础上,建立或优化代码提升产品的用户体验;
任职资格
- 熟悉html5、css3、javaScript的应有,了解W3C标准,对html5的相关特性有深刻的理解;、
- 熟悉各种web前端技术,理解web开发原理,了解常见的前端框架、库、工具,如Jquery、commonJS、Git等;
- 对模块化开发,代码架构设计有一定的了解,有前端改进和优化经验者优先;
- 能熟练运用vue、react、angular,熟悉运用各种插件或组件;
- 具有良好的团队精神、理解力强、能与ui/ux设计师及开发保持良好沟通,主动积极,有耐心且配合度高;
- 有移动支付或者互联网从业经验者优先;
- 掌握面向对象编程,了解后端编程的优先;
内心潜台词:今日9102/3/16周六记,在连续被包雨n个月的杭州终于看到了大太阳,实属感动!走在白马湖的路上,阳光照射在我帅气的面庞上,是不是应该去西湖溜达溜达,养养眼、提提神,顺便邂逅下某位女神,人生就圆满了。可是现实不允许!毕竟10点钟还有一场面试等着我!走了走了,在东冠大厦下匆匆忙忙地打印了简历,顺手买了个烤饼+豆浆¥11大洋,心痛!看来期望薪资有待提升啊,哈哈哈哈。电梯坐到六楼,两对面都是天择的(后来介绍才知道的)就是分两个业务线。接待我的是一位小哥哥,很有礼貌地让我坐在会议室并倒了杯水,让我填个人信息还有笔试题,虽然说有半个小时时间的限制,但是我总想着笔试题多写一点。也听别人说笔试题都不看主要看面试情况,Excuse me?麻烦大家告知下单纯的我是不是真的迷茫脸。

话不多说,上菜
1.关于对象拷贝?
- 浅拷贝:
- object.assign();
- ...[arr]
- 深拷贝
- JSON.parse()、JSON.stringify();
- 递归拷贝
2.怎么判断一个对象是数组还是对象?
- Array.isArray()
- arr.constructor === Array;
- Object.prototype.toString.call(arr) === '[object Array]';
- Object.prototype.toString.call(obj) === '[object Object]'
3.同步和异步的区别,怎么实现异步代码同步化,同步代码异步化,以ajax举例?
- 异步--->同步
- 回调函数;
- Promise
- async await
4.操作节点 增删改查?
- 创建新节点
- createDocumentFragment() //创建一个Dom片段
- createElement() //创建一个具体的元素
- createTextNode() //创建一个文本节点
- 增删改除
- appendChild()
- removeChild()
- replaceChild()
- insertBefore()
- 查找
- getElementByTagName()
- getElementByName()
- getElementById()
5.vuex 五大核心内容?
- state 用来数据共享数据存储
- mutation 用来注册改变数据状态
- getters 用来对共享数据进行过滤操作
- action 解决异步改变共享数据
- module
6.标准盒子模型和怪异模型的区别?
7.工厂设计模式?
- 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。因为工厂模式就相当于创建实例对象的new,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。工厂模式最直接的作用就是将创建对象和对象的业务逻辑相分离。
8.开放题,您认为好的代码方式?
- 组件化
- 模块化
- 类似scss、less动态更改数据
中场休息:面试我的是做后端的技术总监,所以他也没问我什么前端的问题,而是稍后等待前端技术负责人给我电面。所以主要还是和他聊,聊公司的业务属性主要做移动支付这一块,聊后期的业务趋向以及使用技术栈的发展方向。面试官挺和蔼的,我们也聊了三四十分钟是不带技术的话题,还交代了目前公司的团队构成,比如目前2个前端、4个后端、2个android和ios、1个测试以及几个ui的一个技术部门。整个过程面试官对公司赞口不绝,荣辱与共。。。emmmm.....我并不感冒啊,我是来提升自己的!任何一切无所谓,我的脑海中只有学习,hhhh

下午三点的时候我刚下公交车就接到该公司前端技术官的电面:你说要是在公交车电面会不会很尬
1. 说一说闭包?
- 外层函数嵌套着内层函数,外层函数的局部变量作为内层函数的全局变量,在函数调用完后外层函数的局部变量不得已释放而形成闭包,但闭包会形成内存泄漏。
2. 双飞翼布局?
<template>
<header>header</header>
<section class="wrapper">
<section class="col main">
<section class="main-wrap">main</section>
</section>
<aside class="col left">left</aside>
<aside class="col right">right</aside>
</section>
<footer>footer</footer>
</template>
<style>
/* 以下为简码,仅保留关键部分 */
header,footer {height: 50px;}
.wrapper {padding: 0; overflow:hidden;}
.col {float: left;}
.main {width: 100%;}
.main-wrap {margin: 0 100px 0 100px;height: 200px;}
.left {width: 100px; height: 200px; margin-left: -100%;}
.right {width: 100px; height: 200px; margin-left: -100px;}
</style>
3. 对于原型链的理解?
- 每一个实例对象都有__proto__的属性,它指向创建该实例对象的构造函数的原型对象,同理该原型对象也有__proto__的属性指向它的原型对象(prototype),这样逐级往上找,找到顶级对象Object.prototype,再往上找就是null;
4. 对于面向对象的理解?
- 解决了创建多个相似对象的问题,节省内存,提高性能;
- 多用于创建多个含有相同属性,和方法的对象,避免代码的重复编写;
5. es6新增加的内容?
- sybmol 新的数据类型,声明一个唯一的值,不能new;
- let,const
- 箭头函数
- 模板字符串
- 对象解构
- Promise
- class类
6. es6中去重的方法?
- let list = Array.from(new Set(oldList));
- let list = [...new Set(oldList)];
7. var,let,const的区别,暂时性死区怎么理解?
- var 会变量提升,在window下形成属性;
- let 不会变量提升,不会在window下形成属性,有块级作用域,暂时性死区,不能定义相同名字的vo;
- const 不会变量提升,一旦变量赋值后值不可改变,但是对象里的值可改;
8. 看代码,执行结果是什么?
console.log(1);
setTimeout(function(){
console.log(2)
},0);
ajax().then(function(){
conosle.log(3);
})
console.log(4)
- 执行结果为 1,4,3,2;涉及到js的事件循环机制,先执行执行栈中的代码1和4,再执行微任务(Ajax)的代码3,最后执行宏任务中的定时器代码2。
写在最后:作为自己总结性的文章,主要为了提升自身的总结能力,当然也不妨小白类参考准备面试的方向。问题很多方面总结未到位,还希望大神们评论指明修改,不喜勿喷。comeon
weChat:chenhao7120 欢迎业内同伴抱团取暖