美文网首页
jisuanke面经

jisuanke面经

作者: ChangYan | 来源:发表于2016-05-21 12:09 被阅读0次

jisuanke面经

CSS

手写一个布局

用float写出来了。

那用flex怎么实现?

不会(囧)

BootStrap用过吗?有什么特点?用BootStrap写一个三列的div。你知道BootStrap的网格布局是怎么实现的吗?

答:响应式,组件化。col-md-3。使用百分比

为什么有的网站一到移动端就不自适应了?就是尺寸什么的都不对(不知道怎么表达)……

答:没加那个标签

用过less或者sass吗?

看过less的文档,没真正用过

你觉得这类CSS预处理语言有什么特点?

支持变量和函数式书写样式(嵌套)

input(type)的默认值(就是那种灰色的字)怎么实现,如果用脚本呢?

用placeholder那个属性

大概想了一下,思路是onload的时候给一个初始值,然后onfocus清空,onblur的时候检测一下文本值,如果是空的,那么再赋值初始值,如果不是空的那么不用改动

JS

怎样理解闭包?

老生常谈,不罗嗦了……

前端性能优化?

一方面,自动化处理工具、插件;另一方面,代码规范

知道循环事件吗 loopEvents?

不知道(囧),

很重要

,不知道的小伙伴快去看一下

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop

看不懂就看这个视频(2014JSConf上的一个小哥,深入浅出)

http://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html

说一下bower, yeoman, grunt, webpack的区别?

bower是包管理工具,yeoman算是一个工具箱吧,帮助快速构建项目搭建“地基”,grunt/gulp的话算是标准意义上的自动化工具,提供的插件挺多,功能blahblah……webpack/browserify的话就是帮你分析静态资源之间的依赖关系然后进行整合。

介绍一下ES6的新特性?你用什么来写ES6?

箭头函数、块级作用域、模块依赖import/export、Promise对象……

Babel。

IE和其他浏览器的监听事件的方法有什么不同?那怎么在脚本中判断用哪种方法呢?

IE用的是attachEvent(),其他用的是addEventListener()

当时想的是用window的navigator对象获取浏览器的版本信息,但是其实只用一条简单的兼容测试就好了(好蠢,这都忘了):

if(this.attachEvent)

以下代码会输出什么?

var foo = function () {
for (var i = 0; i < 10000; i++) {}
console.log(1)
}
var bar = function () {
console.log(2)
}
setTimeout(foo, 0)
setTimeout(bar, 0)
//1, 2

答成2,1了,因为不知道Eventloop所以没答上来,其实foo和bar是在一个queue里的,只能顺序执行,其他的命令默认是在stack里

以下代码有何不同?

var a = b = 2;
// ———————————
var a = 2;
var b = 2;

一开始回答没区别,后来面试官提示b的作用域,答案是第一种写法的b有全局作用域

可以看一下stackoverflow上这个问题,挺有意思的:

http://stackoverflow.com/questions/27329444/why-a-is-undefined-while-b-is-3-in-var-a-b-3/27329477

如何实现一个每次被调用时会返回被调用次数的函数?

// foo() // return 1

// foo() // return 2

function foo () {
var count = 0;
return function () {
return ++count;
};
}
var bar = foo();
bar();    //1
bar();    //2

考察用闭包保存count的值。

foo的函数我写出来了 但是使用的时候一定要先赋值给一个变量bar,否则会每次都刷新count,这样是不对的:

//Wrong!
foo()();//1
foo()();//1

写一个times函数,使调用 (n).times( func ) 时可以循环执行该函数 n 次?(写法固定,必须这么写)

想到了用this,但是没想出来怎么取得前面n的值,而且这个还牵扯到基本类型原型绑定函数,看来自己还是NAIVE

function times (fn) {
var count = this.valueOf();
//也可以这么写
//var count = parseInt(this);
for (var i = 0; i < count; i++) {
fn();
};
}
Number.prototype.times = times;    //绑定

如何实现类和继承?

不详细说了,反正就是组合继承那一套,先在子类的构造函数里用apply调用父类的构造函数然后再把父类的实例复制给子类的原型。

```

function Parent () {

//constructor

}

function Child () {

//constructor

Parent.apply(this);

}

Child.prototype = new Parent();

```

那怎么在子类中实现重载?(先调用父类的方法然后调用自己的新方法)

我是这么想的:

//子类里(Child)
function Child(){
this.foo = function () {
Parent.foo.apply(this);
//自己的新方法
...
}
}

好像不对?

数据结构/算法:

1.介绍一下你知道的数据结构。线性表、链表、队列、栈、图、树blahblah

2.链表比线性表有什么好处?插入和删除元素只需要改动两个指针

3.怎么在JS中模拟队列和栈?栈:push pop 队列:shift unshift

4.反转字符串

```

function reverseStr (str) {

var strArr = str.split(“”);

var newArr = [];

for (var i = strArr.length - 1; i >= 0; i—) {

newArr.push(strArr[i]);

}

var newStr = newArr.join(“”);

return newStr;

}

```

这个主要考察字符串操作,之前在CodeWar做过一个类似的,所以很快就写出来了。

5.斐波那契数列

悔得我肠子都绿了,光记得用递归,然后具体竟然忘了怎么写……

function fibonacci (n) {
if(n === 1 || n === 2) {
return 1;
}
return fibonacci(n-1) + fibonacci(n-2);
}

肠子都绿了啊!!!!!

React相关的:

1.介绍一下React

大体提了一下核心概念,V的一个框架,VirtualDOM,props,state…

2.知道什么是单项数据流吗?

一开始听错了,还以为是双向绑定什么之类的。

后来答出来了,就是React里props的单向传递

3.你说到了Virtual DOM,那你知道Virtual DOM有什么好处吗?

性能优化(具体到有利于后端进行页面渲染没答出来,这个真不知道)

其他

HTTP协议的request包含什么内容?

请求行,RequestHeader和body

HTTP的状态码有哪些?304知道吗?

只知道404和5XX,304不知道(有缓存,内容暂未修改)

1XX 提示信息 - 表示请求已被成功接收,继续处理

2XX 成功 - 表示请求已被成功接收,理解,接受

3XX 重定向 - 要完成请求必须进行更进一步的处理

4XX 客户端错误 - 请求有语法错误或请求无法实现

5XX 服务器端错误 - 服务器未能实现合法的请求

HTTP方法有哪些?有什么区别?

GET,POST,PUT,DELETE

区别:GET:查询;POST:改动、更新;PUT:增加;DELETE:删除

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

什么是语义化?你说到了有利于SEO优化,你做过这方面的优化吗?

机器理解的html标签,有利于SEO优化。

没做过(囧)

事后查了一下:

title:只强调重点即可,重要关键词出现不要超过2次,而且要靠前,每个页面title要有所不同。

description:把网页内容高度概括到这里,长度要合理,不可过分堆砌关键词,每个页面description要有所不同

重要内容不要用JS输出。爬虫不会读取JS里的内容,所以重要内容必须放在HTML里。

尽少使用iframe框架。搜索引擎不会抓取到iframe里的内容,重要内容不要放在框架中。

为图片加上alt属性。

http://uxc.360.cn/archives/984.html

那你知不知道你谷歌结果的标题为什么是这个?

不知道,回来看了一下其实就是里的内容

接触过函数式编程吗?建议你去学一下

大体了解,没自学过…@.@

怎样判断两个矩形是否存在重合部分(考虑旋转)

这个问题当时没答出来,可能是因为时间比较紧而且有点紧张。

其实两个矩形存在重合部分的充要条件就是“其中一个矩形的有至少一个顶点在另外一个矩形内”

剩下的问题就是怎么判断一个点是不是在矩形内了,考虑到有旋转所有牵扯到坐标系转换的问题,用三角函数就OK了。

总结

面试官是从知乎上认识的一个前端的前辈,敬仰已久,聊了一个半小时,对我的评价是还需要加强基础和算法……哎,一直觉得自己基础还行,然后今天啪啪打脸了……回来之后拿出了那本尘封已久的《权威指南》,继续加油吧

相关文章

  • jisuanke面经

    jisuanke面经 CSS 手写一个布局 用float写出来了。 那用flex怎么实现? 不会(囧) BootS...

  • 筛选用户名

    题面 参见 http://www.jisuanke.com/course/35/5428 解法 直接使用jisua...

  • Android面经| 问题归纳

    面经专题系列:Android面经| 问题归纳Android面经| 回顾展望Android面经| 算法题解 @[to...

  • 信奥测试题

    题目来源 https://www.jisuanke.com/course/1171?from=syllabus 一...

  • 互联网产品经理面试问题汇总(18问)

    写在前面: 以下内容是根据自己看了很多面试经验之后的总结,包括百度面经,腾讯面经,新浪面经,360面经,搜狐面经,...

  • 面经

    HTML 1.Doctype作用,标准模式与兼容模式的区别 声明位于html文档中的第一行,处...

  • 面经

    这两天又收到几个面试邀请,我想记录一下就这两天面试的心得体会。 先拿昨天下午的搜狐畅游来说吧,问的知识点还都很平常...

  • 面经

    作者:尘归土链接:https://www.nowcoder.com/discuss/101712来源:牛客网 计算...

  • 面经

    校招。迎来了面试机会。 面试官:电脑合上,演草纸(本来放在我这)也拿走。手一摊,简历翻来覆去。都懒得问我问题,敷衍...

  • 面经

    所谓面经,即面试经验,这里面包含了面什么?如何去面试以及面试别人?等等诸如此类的。百人计划第八次分享,老徐主要...

网友评论

      本文标题:jisuanke面经

      本文链接:https://www.haomeiwen.com/subject/eknirttx.html