走在前端最前沿之前端面试题

1)ajax是什么?

异步的javascript+Xml

var xhr = new XmlHttpRequest() 或者  new ActiveXObject()
    xhr.onreadyChange = function(){
        if(xhr.readyState = 4){
        if(xhr.status == 200){
            var test = xhr.responseTest()
        }
    }
}
xhr.open("Get" , url ,false) //第三个参数,是否异步

2)如何对数组进行重组?

(1)set方法

var arr = new Set (arr);

arr = Array.from(arr);

(2)for循环

(3)还可以利用对象的key不能相同去做判断

3) js的继承是什么? 

fucntion Person (age){
        this.age = age;
    }
    function pre (age){  
        Person.call(this,age)
    }

4) 盒子模型

(1)普通盒子模型 boxsizing:content-box;(2)怪异盒子模型 boxsizing:border-box;

5)rem和em的区别?

rem是相对于 根元素 上的font-size的大小。em是相对于 父元素 的font-size的大小。

6)http缓存有什么方法?

强缓存:carche-control :max-age

协商缓存:利用304

7)call,apply的区别。这俩者和bind的区别。

call,apply的区别时后面的传参。call时一个一个传,apply时一个数组。

bind能时返回一个新的函数。

8)一句话打乱一个数组?

arr.sort(function(){ return 0.5 - Math.random()})

9)右边固定,左边自适应。上面固定高度,下面自适应高度。

.float-box{
    display:flex;
    justify-content:end;
}

.left{
    width: 100%;
    border:1px solid #ddd;
}
.right{
    width:300px;
    border:1px solid #ddd;
}

10)箭头函数的this的指向问题

阮一峰阮大神写的非常详细,请转到阮大神处http://es6.ruanyifeng.com/#docs/function#箭头函数

猜你喜欢

转载自blog.csdn.net/mayue24/article/details/80903380