前端面试题 作业帮一面 校招 12月4日 55分钟
1.判断是不是数组?
const arr = [1,2,3,4]
- arr instanceof Array //true
- Object.prototype.toString.call(arr) === ‘[object Array]’;
- Array.isArray(arr)
- arr.constructor === Array
- arr.__ proto__ === Array.prototype
2.Flex:1代表什么?
flex: 1 === flex: 1 1 0%; flex-grown flex-shrink flex-basis
- 第一个参数表示: flex-grow 定义项目的放大比例,默认为0,
- 第二个参数表示: flex-shrink 定义了项目的缩小比例,默认为1
- 第三个参数表示: flex-basis 给上面两个属性分配多余空间之前, 计算项目是否有多余空间, 默认值为 auto,
3.margin合并的原因?
我只回答了触发BFC,回答的不准确
4. javascript中有几种数据类型?
- 基本数据类型:Undefine Null String Number Boolean Symble(ES6新增) BigInt(ES10新增)
- 引用数据类型有 Object Array Function
5.TCP三次握手四次挥手?
第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
6.盒模型
7.手写一个左右两边固定,中间自适应布局
8.box-sizing什么意思
9.JS数据类型
10.说一下Promise的静态属性?,race,all他俩的作用
11.手写一个Promise.all
12.一个输出题
var a = 10 ; (function () { console.log(a); //undefined var a = 5; a = 20; console.log(a) // 20 })() console.log(a) // 10