第一次面试:
1、$.ajax如何设置请求头
2、对JS面向对象编程的理解
3、H5新特性
4、CSS3新特性
5、字符串操作函数
6、如何处理跨域问题
7、对开发模块化的理解
第二次面试:
1、$.ajax工作原理,以及原生的写法
原理:通过XMLHttpRequest对象向服务器发送异步请求,从服务器获得数据,然后使用js操作DOM更新数据。通过ajax可以及时的向服务器提出请求和处理响应,实现异步加载,不阻塞用户,达到无刷新更新部分页面的效果。
写法:大致为5个步骤:
① 创建一个 XMLHttpRequest 对象
低版本的 IE 浏览器 (IE7以下)没有XMLHttpRequest 对象,使用 ActiveXObject 对象,
var xhr =new ActiveXObject("Microsoft.XMLHTTP")
兼容写法:
var xhr;if (window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xhr = new XMLHttpRequest();}else{ // 浏览器是IE7一下版本,执行代码 xhr = new ActiveXObject("Microsoft.XMLHTTP");}
② 向服务器URL发出请求,传递参数
xhr.open("post", "http://www.weifen168.com//api/formTemplateOrder/createFormTemplateOrder");xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//注意只有post请求才设置header,get不用xhr.send("templateId="+mudoulMgs+"&name="+name+"&mobile="+phone+"&email="+Eml+"&qq="+QChat+"");//需要传递的参数
注意添加请求头 的规则
xhr.setRequestHeader(header,value);// header: 规定头的名称;// value: 规定头的值;
③监听事件变化 onreadystatechange
xhr.onreadystatechange = function () { if (xhr.readyState==4&&xhr.status==200) { console.log(xhr.responseText) }
④ 获取数据
⑤ 页面渲染
ge请求
xmlHttp.open("GET", "url?参数=val & ...", true);xmlHttp.onreadystatechange = callback;xmlHttp.send(null);
post请求
var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.open("post", "http://www.weifen168.com//api/formTemplateOrder/createFormTemplateOrder"); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.send("templateId="+mudoulMgs+"&name="+name+"&mobile="+phone+"&email="+Eml+"&qq="+QChat+""); xhr.onreadystatechange = function () { if (xhr.readyState==4&&xhr.status==200) { console.log(xhr.responseText) } }
2、JS事件冒泡和事件捕获
答:事件冒泡:顾名思义,由下往上的逐级的事件传递
事件捕获:由上往下的逐级事件传递;
阻止事件冒泡和捕获方法:w3c的方法是 e.stopPropagation(),IE则是使用 e.cancelBubble = true
function stopBubble(e) { //如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) //因此它支持W3C的stopPropagation()方法 e.stopPropagation(); else //否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true; }
注意!!!阻止事件冒泡和阻止默认事件 e.preventDefault() 很容易混淆
preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为;
//假定有链接caibaojian.comvar a = document.getElementById("testA");a.onclick =function(e){if(e.preventDefault){e.preventDefault();}else{window.event.returnValue == false;}}
3、vue-cli手脚架的把vue解析为JS的解析原理
4、bom操作
5、请求状态码,以及在IE和其他浏览器的区别
6、VUE函数的生命周期