千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

一.js有哪些内置对象
1.数据封装类对象:Object Array Boolean Number String
2.其他对象:Function Arguments Math Date RegExp Error
3.Es6新增对象: Symbol Map Set Promise Proxy Reflect
二.如何最小化重绘(repaint)和回流(reflow)
需要要对元素进行复杂的操作时,可以先隐藏(display:“none"),操作完成后再显示需要创建多个DOM节点时,使用DocumentFragment创建完后一次性的加入document·缓存Layout属性值,如: var left = elem.offsetLeft; 这样,多次使用 left 只产生一次回流。尽量避免用table布局 (table元素一旦触发回流就会导致table里所有的其它元素回流)
三.Javascript作用链域?
全局函数无法查看局部函数的内部细节,但局部函数可以查看其上层的函数细节,直至全局细节如果当前作用域没有找到属性或方法,会向上层作用域[[Scoped]查找,直至全局函数,这种形式就是作用域链
四.数据请求
1.xhr
yar xhr = new XMLHttpRequest();
xhr.open('get","ww.aaaa.com",true);//异步
xhr send();
xhr.onreadystatechange = function(){
// readstate 4
// status 200-300
// 200 成功 (有可能强缓存策略,cache-contro],expired)
// 301 302 redirect
// 304 从缓存读取数据。(协商缓存策略,etag)
// 404 not found
// 500 服务器错误。
}
xhr 可以取消?
xhr.abort();//终止请求
2.fetch(w3c)
fetch("url"
(method:"post" ,body:"",credencial:'include")then(res>res.json()).then(res=>{console.log(res)})
// 容性问题
// 发出的请求,默认是不带cookie.credencial:" include"
3.jsonp(解决跨域)
动态创建script src指向没有跨城限制,onload
后端返回的数据格式 一定是, test('["111","222","3333”]');
前端提前定义好 test这个方法,通过形参就拿到数据了。
jsonp 可以做get请求, 无法做post请求(缺点);
jsonp可以取消吗? 不能
五.跨域和同源策略
所谓的同源策略其实是浏览器的一种机制,只允许在同源,也就是同协议、同域名、同端口的的情况下才能进行数据交互。但是我们在开发项目的过程中,往往一个项目的接口不止一个域,所以往往就需要做跨域的处理,通常的跨域方式有这么几种:
SONP,主要依赖的是script标签不受同源策略影响,src指向某一个接口的地址,同步需要传递callback回调函数本地创建的全局回调函数就会执行,并且接收到数据。不使用img标签的原因是名字,这样当接口调用成功后因为img标签无法执行js语句
CORS,依赖服务端对前端的请求头信息进行放行,不做限制。
Access-Contro1-A11ow-Origin配置成
代理访问,前端访问不存在跨域问题的代理服务器,代理服务器再去访问目标服务器(服务器之间没有跨域限制)