最近面试的问题收集

1.简述HTTP的请求过程。

域名解析->发起TCP的3次握手->建立TCP连接后发起Http请求->服务器端响应http请求,浏览器得到数据->浏览器解析数据->断开TCP连接。

2.对闭包的理解和闭包的原理。

blog.csdn.net/u011411356/article/details/50208433

3.cookies,sessionStorage,localStorage的理解。

cookie是网站为了标识用户身份而存储在用户本地终端上的数据,在浏览器和服务器来回传递,数据大小不超过4K,有效时间为设置的cookie过期时间之前。

sessionStorage和localStorage不会自动把数据发给服务器,仅在浏览器上保存,数据大小根据浏览器而定,大约5M,localStorage存储持久数据,用户不主动删除则一直存在,sessionStorage当前浏览器关闭后自动删除。

4.call和apply的区别。

通过call和apply可以重新定义函数的执行环境,改变this的指向。call扁平的把每个参数传进去,apply是把参数作为一个数组传进去。

5.如何美化radio,checkbox按钮样式。

利用opacity设置为0来重新绘制样式。
6.如何优化性能。

减少http请求次数,css压缩,图片制作成css sprite, cdn托管,把ajax请求结果保存,每次操作本地变量。用innerHTML代替Dom操作。当前设置样式很多时,设置className而不直接操作style。少用全局变量。

7.JS的类型有哪些和区别?

ECMAScript包含两个不同类型的值:基本类型和引用类型。基本类型指的简单的数据段;引用类型指由多个值构成的对象。

基本数据类型:undefined,null,boolean,number,string,symbol。

引用数据类型:Function,Object,Array....有很多。

8.在移动端如何画出一条小于1像素的线。

可以使用transform:scale(),来使1px的线缩小到我们需要的值。IOS8以上支持0.5px。如何要考虑兼容性,可以使用图片来实现。

9.var a = 'add';

if ([]) {

console.log(3+5+a)

} else {

console.log(a+3+5)

}

10.在vue,angular,react中子组件如何向父组件传值。


待续...

你可能感兴趣的:(最近面试的问题收集)