大厂前端常见面试题

1. 响应式布局是如何实现的

  1. 百分比布局
  2. rem布局
  3. vw 响应式布局
  4. 媒体查询 @media
  5. 弹性盒子

2. 数据类型判断

  1. typeof 对基本数据类型判断是没有问题的 但是遇到引用数据类型就不起作用了
  2. instanceof 判断 new 关键字创建的引用数据类型 不考虑null 和 undefined
  3. constructor 完全可以应对基本数据类型和引用数据类型 但是声明一个构造函数 把他的原型指向Array的原型 这种情况下也不能判断
  4. Object.prototype.toString.call() 是完美解决方案

3.原型和原型链

1. 原型的概念

  1. javascript的所有对象都包含一个 proto 属性 这个属性对应的就是自身的原型
  2. JavaScript的函数对象,除了原型 proto 属性之外 还有 prototype 属性 当函数对象作为构造函数创建实例时,该 prototype 属性值将被作为实例对象原型 proto

2. 原型链的概念

  1. 当一个对象调用自身不存在的属性或方法时,就会去自己 proto 关联的前辈 prototype 对象上去找 如果没找到就接着往上找 直到找到属性或方法 找不到就 返回 undefined 这就是原型链

4.闭包

1. 闭包

函数嵌套函数 当内部函数访问外部函数变量时 就产生了闭包

2. 特性

  1. 函数嵌套函数
  2. 内部函数可以直接访问外部函数的内部变量或参数
  3. 变量或参数不会被垃圾回收机制回收

3.优点

  1. 避免全局变量污染
  2. 私有成员的存在
  3. 变量长期驻扎在内存中

4.缺点

  1. 常驻内存
  2. 增大内存的使用量
  3. 使用不当 会造成内存泄漏

5.js 继承

es6 有6种方式可以实现继承

1. 原型链继承

原型链继承的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法

2. 借用构造函数

在子类型的构造函数中调用超类型构造函数

3. 组合继承

4. 原型式继承

5. 寄生式继承

6. 寄生组合继承

es6实现继承

6. 什么是深拷贝,浅拷贝 如何实现的

深拷贝和浅拷贝都是针对复杂数据类型来说的,浅拷贝只拷贝一层,深拷贝是层层拷贝
深拷贝可以通过递归 实现
浅拷贝 可以通过 for in 、扩展运算符、Object.assign、Array.prototype.slice()、Array.prototype.concat()

7.事件冒泡,事件捕获

什么是事件

  1. 事件就是文档和浏览器窗口中发生的特定的交互瞬间。
  2. 也可能是用户在某个内容上的点击、鼠标经过某个元素或者是按下键盘上的某个按键,这样事件就发生了

什么是事件流

事件就是从网页中接收事件的顺序 但是IE和网景开发团队提出了两个截然相反的概念 IE的事件流是事件冒泡流,而网景的事件流是事件捕获流

事件冒泡

从事件开始的节点向上传播 到最不具体的节点

事件捕获

和事件冒泡相反 从最不具体的节点 向下传播 最具体的节点是最后接收事件的

8. h5 和 css3 的特性

h5 新增了语义化标签 header footer aside 等 本地储存 视频音频 监听手机状态 重力感应
css3 新增 动画 2D 3D 转换 变形 弹性盒子 边框圆角 边框阴影 伪类

9. Axios拦截做过哪写

Axios拦截分为请求拦截和相应拦截 ,请求拦截就是在请求时进行触发,只要你发送一个axios请求就会触发 主要做过loading加载 和数据的权限验证,还有数据的预加载也可以实现。 响应拦截主要是在loading, 和数据加载需要结束时 把相应的数据发送到前端的时候进行隐藏和结束
Axios 还可以设置请求头 共用地址,以及跨域问题的解决

10. localStorage sessionStorage cookie 的区别

localeStorage 永久保存 除非用户手动清除 否则永远保存 存放大小为5MB 不参与和服务器的通信
sessionStorage 会话储存 只要当前的页面关闭就会清除 大小也是5MB 不参与和服务器的通信

作用域

不同浏览器无法共享 localStorage sessionStorage中的信息 相同的浏览器 不同页面可以共享localStorage 但是不同页面不

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值