搜狐前端面试题-2016年

问答题

1、怎么实现div的水平居中和垂直居中

2、构造函数里定义function和prototype定义function有什么区别?

3、js怎么实现继承?

4linux服务器下文件传输命令?如果要断点续传呢?

5、js跨域
参考答案

1、flex居中,这是css3中引入的新布局方法。但是IE9及以下不兼容。

.div1{
 display: -webkit-flex;
 display: flex;
 webkit-align-items:center;         /*使水平居中*/
 align-items: center;
 webkit-justify-content:center;     /*使垂直居中*/
 justify-content: center;
 width: 500px;
 height: 500px;
 margin;auto;
 border:1px solid red;
}
.div2{
width: 200px;
height: 200px;
background: blue; 
}
2、A、直接调用function,每一个类的实例都会拷贝这个函数,弊端就是浪费内存(如上)。prototype方式定义的方式,函数不会拷贝到每一个实例中,所有的实例共享prototype中的定义,节省了内存。
B、但是如果prototype的属性是对象的话,所有实例也会共享一个对象(这里问的是函数应该不会出现这个情况),如果其中一个实例改变了对象的值,则所有实例的值都会被改变。同理的话,如果使用prototype调用的函数,一旦改变,所有实例的方法都会改变。——不可以对实例使用prototype属性,只能对类和函数用。

3、使用原型prototype

var Parent = function(name){
        this.name = name || "parent";
    }
    Parent.prototype.getName = function(){
        return this.name;
    }
    var Child = function(name){
        Parent.apply(this,arguments);       //通过apply调用父类的构造函数来进行相同的初始化工作
    }
    Child.prototype = Parent.prototype;
    var parent = new Parent("MyParent");
    var child = new Child("MyChild");
    console.log(parent.getName());      //MyParent
    console.log(child.getName());       //MyChild
//这样我们就只需要在子类构造函数中执行一次父类的构造函数,同时又可以继承父类原型中的属性,这也比较符合原型的初衷,就是把需要复用的内容放在原型中,我们也只是继承了原型中可复用的内容。
4、scp传输。scp  源文件  目标文件

但是scp不能实现断点续传。要实现传输中断后从断掉的地方接着来,可以用curl


-C/--continue-at <offset>       断点续转  
//如果在下载dodo1.JPG的过程中突然掉线了,可以使用以下的方式续传
# curl -C -O http://www.doiido.com/dodo1.JPG
5、js跨域是因为同源策略导致的。解决方法有: 
图像Ping:使用<img>标签,因为网页可以从任何网页中加载图片,而不用担心跨域。请求数据通过字符串形式发送,而响应可以是任何内容。这种方法,1)只能发送get请求。2)浏览器无法获取响应数据。3)只适用于浏览器与服务器之间的单向通信。


个人资料
游弋的蔷薇
等级:7
文章:27篇
访问:3.8w
排名: 10
上一篇: 网易前端开发笔试题-2014年
下一篇:网易实习生技术类笔试题-2016年
猜你感兴趣的圈子:
搜狐笔试面试圈
标签: prototype、parent、居中、child、center、面试题
隐藏