2016前端面试题总结

<span style="font-size:18px;">
</span>
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:css实现水平和垂直居中

<span style="font-size:18px;"><!--利用绝对定位方式-->
.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></span>

<pre name="code" class="html" style="color: rgb(51, 51, 51); line-height: 26px;"><span style="font-size:18px;"><!--利用负边距-->
.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></span>

 
<span style="font-size:18px;"><!--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的定义</span>
<!--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>
3: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方法返回的仍然是一个函数,因此后面还需要()来进行调用才可以


4: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可以设置作用域




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值