面试就业 #

@(未归档)[前端, 面试]


[TOC]

1. 面试 #

1.1第一面 #

直接老大面试,不管社招和校招都是这样的 不会问特别详细的具体问题 后面的架构师会问的非常具体 ,问一些宏观的架构问题,是问一些特质。 聊聊天问问做过的项目,综合能力的面试

1.2 第二面 #

技术总监的面试,会难一点 大公司更复杂 一下,小公司第二面就是技术总监 会写一些算法,说一下具体的架构,直接画出架构图

1.3 第三面 #

级别高是CTO,级别低是HR面 CTO和技术总监技术差不多,但压力会大一点,观察 你面对压力的反应

1.4 第四面 #

HR面试,主要是关注性格和做事的方式,关注技术之外的面试 非常重要,对企业是否录取起着非常重要的作用

2. 面试问题 #

2.1 技术基础 #

2.2 什么是优秀的工程师 #

2.2.1 可以持续成长 #

2.2.2 做事的方式 #

  1. 做完事后有没有去总结,做完事后有没有去分析,还是直接写代码,直接去切图
  2. 重复性的工作会不会想办法去做一些工具或组件库去解决这类问题
  3. 面试的时候会关注自己有没有写笔记和博客,这是一个学习的方式和做项目总结的方式
  4. 对新技术的关注,有没有关注社区的新技术,关注业界的进展,是否在把时间投入在学习上面,如果你对开源技术有了解和实践经验会更有优势

2.3 技术发展方向 #

3. 简历 #

  1. 简历可以精简
  2. 列出最近的核心项目,能体现出有竞争力,有价值的项目
  3. 列出工作经验,强调技能,之前解决过什么问题,个人价值在哪里
  4. 带过团队,有管理能力。做过多端,前端、移动端、客户端 、服务端等列出来,让人眼前一亮
  5. GITHUB,做过的网站和APP作品

4. 面试 #

  1. 面试之前把最近做的重要的事情进行梳理,把能体现自己价值的东西体现出来
  2. 画架构图,前端和服务器端的架构图,整体的解决方案
  3. 你要准备几个合适的问题?比如我找工作的角色和岗位责任?要解决什么问题?现在的技术架构?
  4. 一定要把握主动权,主动去表达自己的的优势和擅长的东西,尽量自己多说
  5. 如果实在不知道就可以坦诚一点,但要突出好学,而且再抛出你擅长的话题
  6. 每一轮面试官面试的问题和关注的点不太一样,提前准备的时候要提前有针对性的准备。
    1. 第一轮关注综合能力,这时要讲你的项目经验和技术广度
    2. 第二轮会问算法和架构思路和非常详细的技术点,要有针对性的准备
    3. 第三轮 HR要准备对应对的话术,比如对加班事情如何看的?还有什么要问的问题吗?

5. 问题 #

5.1 项目经验如何体现? #

5.2 觉得能力不差但过不了面试为什么? #

5.3 问算法 #

是问思路和基础

5.4 不好简历直接PASS #

  1. 首先看学历,学历不好的话看别的,学历好加分
  2. 看之前工作过的公司,如果公司出名加分
  3. 看表达上面能不能表现出他的价值和能解决的问题,只罗列出公司和项目PASS
  4. 简历里要体现出比较特殊的信息,面试员为什么要关注我?是技术全面?参与开源社区?了解技术多?带过团队?擅长总结?

5.5 实习生没有项目经验如何表达 #

  1. 最重要的还是基础
  2. 没有项目经验可以看社区文章,了解关注的话题,有理论基础
  3. 自己找一些实践的机会,给学校做的APP或网站,好玩的插件,自己的博客

6. 考题 #

###6.1 JS

6.2 CSS #

6.3 其它 #

6.4 水平分级 #

7. 面试题 #

7.1 HTML&CSS #

  1. 一个div,宽度是100px,此时设置padding是20px,添加一个什么css属性可以让div的实际宽度仍然保持在100px,而不是140px?
  2. 清除浮动的方式,提供尽可能多的方案。
  3. 如何让两个div分别以40%和60%的比例排在一行内,提供尽可能多的方案。
  4. 如何用css实现一个div的一秒内向右平滑移动100px的动画 .
  5. localStorage,sessionStorage,Cookie的区别和用途。

7.2 正则题 #

var string = "我的账户余额:2,235,467.20";
console.log(?);

// 请用js计算出我到底有多少钱(输出Number类型数字,代码尽量简洁,考虑通用情况)

3.作用域

function person() {
    return this.name;
}
var someOne = {
    name: 'Jenny',
    age: 18
};

// 此处如何输出 'Jenny'

7.3 语法题 有一个合法的 JSON 对象(即不包含函数等值的对象),设计一个函数,取出该对象内所有 key 为 "id" 并且其值不为对象、数组的值,装入一个数组并返回。 #

function extractIds(data) {
    // implement
}
样例数据:
var data = {
    id: 1,
    items: [
        { id: 2 },
        { item: 3, id: [
            { id: 4 },
            { id: 5 }
        ]}
    ]
};

extractIds(data); // should return [ 1, 2, 4, 5 ]

7.4 闭包 下面五段代码分别输出什么?并且什么时候输出什么? #

for(var i = 0; i < 5; i++) {
    console.log(i);
}
for(var i = 0; i < 5; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000 * i);
}
for(var i = 0; i < 5; i++) {
    (function(i) {
        setTimeout(function() {
            console.log(i);
        }, i * 1000);
    })(i);
}
for(var i = 0; i < 5; i++) {
    (function() {
        setTimeout(function() {
            console.log(i);
        }, i * 1000);
    })(i);
}
for(var i = 0; i < 5; i++) {
    setTimeout((function(i) {
        console.log(i);
    })(i), i * 1000);
}

7.5 创建一个二进制相加函数,根据传入的两个二进制数字符串返回一个相加的十进制的结果。 #

/*
* @param {String} a number a
* @param {String} b number b
* return {Number} the result
*/
function calculate(num1, num2){
    // implement here
}
结果样例:
calculate("10", "10")    // => 4
calculate("10", "0")     // => 2
calculate("101", "10")   // => 7

参考 链接 #

http://naotu.baidu.com/file/8b70b0b099a76a8cb4b99a6b2e456d60?token=bdce82938654c44b https://zhuanlan.zhihu.com/p/21707924 http://www.html-js.com/article/Large-search-front-team-column%202961