jisuanke面经

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了。

总结

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



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,646评论 18 139
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,739评论 2 17
  • (壹) 雾深,暮沉。 红枫树下,她一袭黑衣,剑身沾满血,她亦沾满血。 “女施主,女施主···” 她用尽全身的力气,...
    江厘阅读 643评论 0 11
  • 1. 画室里来了个小姑娘。其实也不小了,20岁,今年大二。她说她爱画画,不是一般的热爱,是狂热的爱,是那种为了画画...
    小徒弟阿卿阅读 571评论 1 10
  • 成长,伴随着事物的改变成就了现在的自己。 小时候的你一定是想快快长大的,也梦想过长大后的自己是什么样子。长大后的你...
    管管依阅读 367评论 0 0