web前端面试的模糊问题

Ajax 的原理是什么?有什么优缺点?

AJAX即“Asynchronous Javascript And XML”,是一种创建交互式网页的应用的网页开发技术,
   他的核心就是依赖浏览器的XMLHttpRequest技术,使浏览器可以想web服务器发出http请求以及接受http响应,当发出http请求之后就继续做其他的事情,等到http返回了拿到数据再去渲染页面(异步)
   1·创建Ajax的核心技术XMLHttpRequest
    var xhr = null; 
    if(window.XMLHttpRequest){
        xhr = new window.XMLHttpRequest
    }else{
        xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
    }
   2·向服务器发送请求
    xhr.open(method,url,async)   //async  true为异步  false为同步
    xhr.send()
   3·异步处理
    xhr.onreadystatechange = function(){
        if(xhr.readyStatus == 4 && xhr.status == 200){
            //todo...   回调处理
        }
    }
      readyState属性是用来标识当前xhr对象处于什么状态
      readyState总共有5个状态值,分别为0~4,每个值代表了不同的含义
      0  未初始化  尚未调用open方法
      1  启动  调用了open方法  但是还没有调用send方法
      2  调用了send方法   但是还没有接受到响应
      3  接受 已接受部分数据
      4  完成  已经收全部数据
      xhr.status  就是http的状态码

Promise 的原理是什么?请你手写一个 Promise 出来

Http 2.0 做了哪些升级?

TCP 与 UDP 的区别?

MVC 与 MVVM 的区别?

实现对象深度拷贝的方式?

html5的新特性

 

js的new操作符做了那些事情,怎么实现一个自定义new的过程

function Foo(name){
    this.name = name;
}
Animal.prototype.say = function(){
    console.log("I'm " + this.name);
};
var cat = new Animal("cat");

ps:如果Foo函数返回的是一个对象那么cat就是这个返回的对象
1.创建了一个对象
2.把返回的对象的__proto__指向了函数的prototype属性
3.函数执行了一边,并且把函数内部的this指向了返回的对象上面


new操作符的内部构造 ()

new Foo(name) = {
    var obj = {}
    obj.__proto__ = Foo.prototype;
    var result = Foo.call(obj,name)
    return typeof result === 'object' ? result : obj;
}

 

你可能感兴趣的:(HTML5,Css3)