欢迎光临散文网 会员登陆 & 注册

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

2023-07-20 15:55 作者:非凡要上大分  | 我要投稿

P5 005-JS高频面试题-1

1、JS的内置对象(就是JS中的封装函数)

数据封装类对象:Object,Array,Boolean,Number,String

其他对象:Function,Arguments,Math,Date,RegExp,Error

ES6新增对象:symbol(标识唯一ID),Map,Set,Promise,Proxy,Reflect

2、最小化重绘和回流

需要对元素进行复杂的操作时,可以先隐藏(display:“none”),操作完成后再显示

需要创建多个DOM节点时,使用DocumentFargment创建完成后一次性加入document

缓存Layout属性值,如:var left= elem.offsetLeft

这样,多次使用left只会产生一次回流

尽量避免使用table布局(table元素一旦触发回流就会导致table里的所有元素回流)

3、JavaScript作用域链

全局函数无法查看局部函数的内部细节,但是局部函数可以查看其上层的函数细节,直至全局细节

如果当前作用域没有找到属性或方法,会向上层作用域[[Scoped]]查找,直至全局函数,这种形式就是作用域链

4、数据请求

XHR:

var xhr = new XMLHttpRequest();

xhr.open('get',"www.aaa.com",true);

xhr.send();

xhr.onreadystatechange = function(){

//readstate 4

//status 200 - 300

//200 成功(有可能强缓存策略,cache-control,expired)

//301 302 redirect

}

xhr 可以被取消,使用 .abort() 终止请求

xhr.abort();//终止请求


fetch(w3c提出,为了解决xhr请求混乱,对异步处理不友好的问题):

fetch("url",{method:"post",body:"",credencial:"include"})

.then(res=>res.json())

.then(res=>{console.log(res)})

//兼容性问题

//发出的请求,默认是不带cookie.credencial:“include”


jsonp(解决跨域问题)

动态创建script src指向没有跨域限制, onload

后端返回的数据格式一定是,test('["111","222","333"]');

前端提前定义好test这个方法,通过形参就拿到数据了

jsonp可以做get请求,无法做post请求(缺点)

jsonp可以取消吗?不能取消


5、跨域和同源策略

同源策略其实就是浏览器的一种机制,只允许在同源,也就是同协议,同域名,同端口的情况下才能进行数据交互,但是在开发过程中,往往一个项目的接口不止一个域,所以就需要做跨域的处理,常用的跨域方式有以下几种:

1)jsonp,主要依赖script标签不受同源策略影响,src指向某一个接口的地址,同步需要传递callback回调函数名字,这样当接口调用成功后,本地创建的全局回调函数就会执行,并且接收到数据,不使用img标签的原因是因为img 标签无法执行js语句

2)cors,依赖服务器对前端的请求头信息进行放行,不做限制

Access-Control-Allow-origin配置成*

3)代理访问,前端访问不存在跨域问题的代理服务器,代理服务器再去访问目标服务器(服务器之间没有跨域限制)

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

分享到微博请遵守国家法律