2016前端面试题总结
css
1:css实现水平和垂直居中
利用绝对定位方式
.parent{
position:relative;background: red;width: 500px;height: 500px;
}
.child{position: absolute;width: 100px;height: 100px;top:0;left: 0;bottom: 0;right: 0;margin: auto;overflow: auto;background: green;
}
<div class="parent"><div class="child"><p>jfdajfdajfjdajafdjfdjaafjdsjfds</p><div>kfdksafkakfdskafdfskfdk</div></div>
</div>
利用负边距
.parent{position: relative;background: red;width: 500px;height: 500px;
}
.child{position: absolute;width: 100px;height: 100px;top:50%;left: 50%;margin-left:-50px;margin-top:-50px;overflow: auto;background: green;
}
<div class="parent"><div class="child"><p>jfdajfdajfjdajafdjfdjaafjdsjfds</p><div>kfdksafkakfdskafdfskfdk</div></div>
</div>
transform让百分比布局元素水平垂直居中
.center{
position: absolute;
top: 50%;
left: 50%;
width:50%;
height:30%;
padding:20px;
text-align:center;
background:#393;
color:#fff;
transform: translate(-50%, -50%);
}
<div class="center">您可以尝试改变浏览器大小,这个元素依然是水平垂直居中的哦!</div>
关键是top,left和transform的定义
table-cell实现水平和垂直居中
.wrapper{display: table-cell;text-align: center;vertical-align: middle;width: 300px;height: 300px;background: red;
}
.center{
background:#393;
color:#fff;
width: 100px;
height: 100px;
margin:0 auto;
}
<div class="wrapper"><div class="center">您可以尝试改变浏览器大小,这个元素依然是水平垂直居中的哦!</div>
</div>
flex弹性布局实现居中
.wrapper{display: flex;justify-content:center;align-items:center;width: 300px;height: 300px;background: red;
}
.center{
background:#393;
color:#fff;
width: 100px;
height: 100px;
}
<div class="wrapper"><div class="center">您可以尝试改变浏览器大小,这个元素依然是水平垂直居中的哦!</div></div>
2:怎么清除浮动以及原理?BFC是什么有什么作用?
3:怎么实现左右各100px定宽布局,中间宽度自适应?
4:div#a .b.c{}有什么问题
5:怎么实现如下布局
<body>
<div class="nav"></div>
<div class="content"></div>
<div class="footer"></div>
</body>
当nav+content的高度小于屏幕高度-footer的高度时,footer一直固定在屏幕底部
当页面出现滚动条后footer在页面底部。
6:手机端如何实现1px的细线。
7:rem实现自适应布局的原理描述。
JS
1:I believe I can fly.按字母表顺序排列
function compare(s1,s2){if(s1.toLowerCase() > s2.toLowerCase()){return 1;}else if(s1.toLowerCase() == s2.toLowerCase()){return 0;}else{return -1;}}var s = "I believe I can fly";var s_arr = s.split(" ");var new_s_arr = s_arr.sort(function(a,b){return compare(a,b);});console.log(new_s_arr.join(" "));
2:apply,call和bind函数的区别
var xw = {
name : “小王”,
gender : “男”,
age : 24,
say : function(school,grade) {
alert(this.name + ” , ” + this.gender + ” ,今年” + this.age + ” ,在” + school + “上” + grade);
}
}
var xh = {
name : “小红”,
gender : “女”,
age : 18
}
call方法
xw.say.call(xh,”实验小学”,”六年级”);
apply方法
xw.say.apply(xh,[“实验小学”,”六年级”]);
bind方法
xw.say.bind(xh)(“实验小学”,”六年级”);
或者
xw.say.bind(xh,”实验小学”,”六年级”)();
call和apply都是对函数的直接调用,而bind方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以
3:cookie,session,localStorage,sessionStorage的区别
localStorage,sessionStorage都是H5 web Storage API新增的方法,都是只在客户端存储数据,不会自动把数据发送给服务器,有效的避免在浏览器和服务器端传递数据,减少请求。cookie也把数据保存在服务器,但是会始终在同源的http请求中携带,即使不需要,即cookie来回在浏览器和服务器端传递,而session始终保存在服务器端,具体用法可参考PHP中session。
生命周期:localStorage除非主动删除,否则不会过期,在同源中有效;sessionStorage在同源同窗口中有效,窗口一旦关闭,sessionStorage就会失效。cookie能够设置有效期,也必须是同源。
大小限制:cookie一般不能超过4KB,localStorage和sessionStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
作用域:cookie可以设置作用域
4:数组去重
var a = [1, 3, 4, 5, 5, 6, 7, 7, 9, 9, 11, 17, 19, 20];
var b = {};
var c = [];
for(var i = 0; i< a.length; i++) {if(!b[a[i]]) {b[a[i]] = a[i];c[i] = a[i]}
}
console.log(c);
5:原生js实现insertAfter方法。
6:怎么把两个有序数组合并成一个有序数组
var a = [1,4,5,7,9,20];
var b = [3,5,6,7,9,11,17,19];
var c = a.concat(b);
c.sort(function(x, y) {return x - y;
});
console.log(c);
7:
var a = [[1,1],[2,2],[3,3]];var b = a;b.push([4,4]);此时a = b = [[1,1],[2,2],[3,3],[4,4]];怎么实现b的值改变但不影响a的值? var b=a.concat([]);b.push([4,4]);
8:null和undefined的区别
9:alert(a);->referenceError
10:如何把类数组对象arguments变成真正的数组。
11:区分[]和{}
12:节流函数以及使用场景
13:图片懒加载
14:怎么实现边滚动变加载页面(分页请求数据)
15:怎么实现页面滚动停止执行某个事件?
16:js中this的指向问题。
17:实现二叉树先序查找算法。
18:闭包相关问题。
19:如何实现深度拷贝?
function deepCopy(p, c) {var c = c || {};for(var key in p) {if(p.hasOwnProperty(key)) {if(typeof p[key] === 'object') {c[key] = Array.isArray(p[key]) ? [] : c[key] || {};deepCopy(p[key], c[key]); } } else {c[key] = p[key];}}return c;
}
20:数组去重
var uniq = function(array) {return Array.prototype.filter.call(array, function(item,index) {return array.indexof(item) === index;})
}
未完待续
2016前端面试题总结相关推荐
- 下面有关html5标签说法错误的有,前端面试题(2016含答案)
标签定义命令按钮,比如单选按钮.复选框或按钮 8) 下述有关css属性position的属性值的描述,说法错误的是? a. b. c. d. static:没有定位,元素出现在正常的流中 fixed: ...
- 2016年全面前端面试题总结
web app遇到的一些坑及小技能(持续更新...) 标签,所以数字的部分样式继承了a标签的样式,导致部分样式无效 解决方法:(1)meta 标签加上<meta name="form ...
- promise的状态以及api介绍_2019年,盘点一些我出过的前端面试题以及对求职者的建议
笔者虽然曾经也面试过很多求职者,但是对于前端的笔试和面试,我觉得并不能体现一个人的真实能力,所以建议大家多修炼前端真正的技术.对于前端面试题,之前也承诺过读者要出一篇,笔者大致总结一下曾经面试的题目. ...
- 【前端】前端面试题整理
前端和计算机相关知识 你能描述一下渐进增强和优雅降级之间的不同吗 浏览器兼容问题 如何对网站的文件和资源进行优化? 怎么学习前端?怎么接触前端新知识? 关于前后端分离 关于浏览器内核(渲染引擎) 浏览 ...
- 前端面试题整理汇总(一)
前端面试题整理汇总(一) 优才网 关于前端面试题,优优之前推荐过,如下,点击即可查看: 5个经典的前端面试问题 2016年十家知名公司前端面试经验总结 前端面试会问哪些问题? 前端开发面试题汇总[HT ...
- github前端面试题1
2016/7/20 Myblog/ FrontendDeveloperQuestions/ QuestionsandAnswers at master · markyun/Myblog · GitHu ...
- 前端面试题总结(js部分)|下
40 . 有这样一个 URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e , 请写一段JS程序提取 URL ...
- 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)
前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...
- 前端面试题整理(定期更新)
前言 因为面试的原因,最近又开始关注前端面试题,浏览过网上很多面试题集合,有很多小伙伴整理的很全面,但是我发现其中有很多技术点在当下已不再流行,而面试题一般都是映射开发中常遇到的一些技能和问题,再结合 ...
最新文章
- 新建一个doophp项目
- 忠告28:奥纳西斯:处处留心皆学问
- ubuntu etc目录下配置文件profile和profile.d的区别?(文件解析)
- 玩转StyleGAN2模型:教你生成动漫人物
- 百度关键词抓取工具_VBA利用XMLHTTP抓取百度查询关键词结果的个数
- Chapter7-9_Deep Learning for Dependency Parsing
- 第一个关于中式菜谱的智能问答机器人小程序正式上线啦
- linux 环境安装DBI和DBD_03
- Java之PriorityQueue有序队列
- python之websocket
- javaScript书写规范
- ComponentArt.web.ui中文帮助之Grid(六)
- 蓝桥杯 ADV-133 算法提高 彩票
- python中printf的用法_python输出语句print的用法是什么?
- qq邮箱注册收件服务器,qq邮箱smtp服务器
- 简历表格下载word格式 免费版​
- ImportREC输入表重建工具
- vue使用Mars3D实现3d卫星轨道和3d地球图
- Scrapy框架之传智项目整理
- JS中国标准时间格式转换