大厂面试题

一.如果把一个DIV在页面上上下左右都居中?

二、padding和margin有什么不同?
作用对象不同,padding针对于自身的,margin针对外部对象的

三、vw与百分比有什么区别?
百分比有继承关系,vw只和设备的宽度有关系。

四、行内与块级元素区别?
行内元素的宽高由内容决定,块级元素独立占一行,并且宽度有继承关系,如果没有设宽度,会默认继承父级宽度。

五、如果让google支持小字体?

 六.、left 和var区别
        var 的问题:
                声明提升
                没局部/块级作用域,
                声明覆盖

七、深拷贝和浅拷贝
数组和对象的赋值是浅拷贝,会互相影响
解构赋值针对一维数组和对象可以看作是深拷贝,但是针对多维(多级)数组和对象是浅拷贝
深拷贝的方法:
 1.通过json方法(只能满足常见的80%的情况,方法不能拷贝,这个原理就是先转换成json字符串,再通过parse解析成对象,function关键字会转成"function",性质发生变化)

2.手写,递归

     
八、在浏览器中输入URL那一瞬间发生了什么?
htts://www.baidu.com
url =>统一资源定位符,熟称网址
www 万维网/服务器
https:加密传输协议(http和TCP之前加了一层,TSL或者SSL 的安全层)
baidu.com 域名

第一次访问:
1.DNS域名解析(拿到真实的IP) (ping 是测试连接用的)
2.建立连接(TCP的三次握手:1.客户端向服务端发送请求,等待服务端确认 2.服务端收到请求,进行确认,并且回复一个指令  3.客户端收到服务器指令,并且返回确认,然后就把消息给到你  ,三次握手并不是正式的数据)
3.三次握手成功后,拿到数据,渲染页面
4.四次挥手


第二次访问:
第一次访问后,浏览器会将域名的解析存在本地,下次再访问,会先读取浏览器的缓存
 

html 页面放到浏览器是如何渲染的:

九、在日常开发中,从哪些点做性能优化?
   1.加载优化:
        减少http请求(精灵图,雪碧图,并件合并)
        减少文件大小(资源压缩,图片压缩,代码压缩)
        CDN(第三方库,大文件,大图)
        SSR服务端渲染,预渲染
        懒加载
        分包(小程序等)
2.减少dom操作,避免回流,文档碎片

十、哪些是性能优化?
        1.页面加载性能
        2.动画与操作性能(如果有大片的DOM要进行切换,首选 translate 和定位,因为这是脱离文档流的)
        3、内存占用(内存占用过大,浏览器崩掉)
        4、电量消耗(游戏)
           

十一、懒加载原理

 

n 是防止加载过的图片重复加载

 

十二、this指向问题
1.指向上一个调用者
2.箭头函数没有作用域,没有this,所以以下代码this指向的是外层,fn5是全局的,是挂载到window下,window.fn5 所以结果是 66

如果想让结果为22,改变this的指向,使用 call,apply

bind 和 call,apply区别
1.call和apply只是传参上的区别,apply传的是数组
2.bind只改变this指向,不调用
3.apply/call 改变this指向后,执行一次

十三、闭包

为什么要有闭包?
1.避免变量被污染
2.私有化
3.保存变量,常驻内存(程序在浏览器执行的时候,会创建一个AO(Active object)临时变量对象,方法和局部对像会放到AO里,到程序执行完后,AO里的东西会变释放了,全局变量不会被垃圾回收机制回收的,会常驻于内存)

闭包的应用场景?
防抖,节流,库的封装(保证数据的私有性)

实例:

闭包应用:处理私有数据

 

 十四、new 关键字

let person = new Person()
new 做了什么:
1. 创建一个空对象
        Object.create(null) 和 {} 有什么区别:
        Object.create(null) 是没有 __proto__ 原型链的,如果只是想存储一些数据,用这个效率更高

2.设置原型链
obj._proto_=Person.prototype

3.改变this的指向

4.判断返回值类型

 构造函数返回的是新创建的对象,普通函数返回的是undfined

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值