面经总结

来源:互联网 发布:java项目怎么重新编译 编辑:程序博客网 时间:2024/05/24 22:45
  1. 手写闭包,继承
function F(){    var arr=[];    for(var i=0;i<10;i++){        arr[i]=(function(x){            return function(){                return x;            }        }(i));    }    return arr;}

function Animal(name){    this.name = name;}animal.prototype.sayName=function(){    alert(hello,+'this.name');}var cat = new Animal('cat');
  1. 手写事件绑定
<ul>    <li>1</li>      <li>2</li>    <li>3</li></ul><script>    var lis=document.getElementsByTagName('li');    for(var i=0;i<lis.length;i++){        function(i){            lis[i].addEventListener('click',function(e){                alert(i+1);            },false);        }(i);       }</script>
  1. css3画一个三角形,用content:0,boder:很大,三面border透明
  width:0px;  height:0px;  border-bottom: 100px solid green;  border-left: 50px solid transparent;  border-right: 50px solid transparent;  
  1. 图片延迟加载怎么实现,监听scroll事件,替换src
  2. websocket原理,应用场景:扫描二维码后,跳转登陆
  3. 前端路由的实现原理,hashchange
  4. ES6中有什么特性,promise实现原理
  5. 手写after方式清除浮动,一个冒号和两个冒号的区别
.clearfix::before, .clearfix::after {  content:"";  display:table;}.clearfix::after {  clear:both;}.clearfix {  zoom:1; /* For IE 6/7 (trigger hasLayout) */}
  1. CSS选择器,nth-chlid(n)和nth-type(n)区别
    **ele:nth-child(n):ele的父元素的子元素的第n个,且n为ele
    ele:nth-type-of(n):ele的父元素的子元素的ele集合里的第n个**

计算机网络
三次握手
四次挥手
操作系统
进程和线程的区别
进程间如何通信
操作系统中有几种状态

百度一面
1、手写jsonp的实现
2、手写链表倒数第K个查找
3、http请求头,请求体,cookie在哪个里面?url在哪里面?
4、垂直居中,多行文本垂直居中
5、原型链的解释
6、对闭包的理解,实现一个暴露内部变量,而且外部可以访问修改的函数(get和set,闭包实现)
7、{}=={}? []==[]? null==undefined?
8、基本的数据类型
9、基本的两列自适应布局
10、unix中常用的命令行
11、OSI模型,HTTP,TCP,UDP分别在哪些层
12、网站性能优化
13、解释平衡二叉树,以及在数据结构中的应用(红黑树)
14、快排的时间复杂度和空间复杂度。

百度二面

1、手写一个jQuery插件

2、在jquery方法和原型上面添加方法的区别和实现(.extend,.fn.extend),以及jquery对象的实现(return
new jQuery.fn.init)
3、手写一个递归函数(考察arguments.callee,以及arguments的解释)
4、对前端路由的理解?前后端路由的区别?
5、介绍一下webpack和gulp,以及项目中具体的使用
6、你对es6的了解
7、解释一下vue和react,以及异同点
8、关于平衡二叉树
9、前后端分离的意义以及对前端工程化的理解
10、使用css实现一个三角形(盒模型border和css旋转两种方法,主要考察css3旋转)

11、原生ajax,用promise手写ajax
原生:

var xhr = new XMLHttpRequest();xhr.onreadyStateChange = complete();xhr.open('GET',url,true);xhr.send();complete(){    if(xhr.readyState ==4&&xhr.status==200){    }}

12、手写一个类的继承,并解释一下

13、解释一下call函数和apply函数的作用,以及用法
改变this的绑定,通过设置参数使当前函数可以使用其他函数的方法,除第一个参数以外,call的参数是逗号区分,apply参数是数组(当不知道参数内容是可以用数组)
call,apply都是立马调用对应的函数而bind会生成一个新的函数(setInterval())

百度三面
总结就是,如果你前一面没有答好的问题,下一面依然很可能问你,所以做好总结。

0 0
原创粉丝点击