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 auto; flex-grow flex-shrink flex-basis
- 第一个参数表示: flex-grow 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大,如果值为1的话,平分剩余空间
- 第二个参数表示: flex-shrink 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小,如果值为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