CSS3有哪些特性
- border-radius:圆角边框
- box-shadow:盒子阴影
- background-size:背景图片大小
- transition:过渡
- transform:转换(位移 旋转 缩放)
- animation:动画
- linear-gradient:线性渐变
- box-sizing:css3 盒子模型
git的核心概念有哪些?
git add README.md #提交暂存区
git commit -m "随便起(名)" #提交本地仓库
git remote add origin https://gitee.com/huitailang2021/mytest.git #指定origin的地址
git push -u origin "master" #提交远程仓库
git中与分支相关的操作有哪些?
- 查看本地分支:
git branch - 创建本地分支:
git branch lizhihui - 删除本地分支:
git branch -d lizhihui - 切换分支:
git checkout lizhihui - 合并分支:
git merge master - 远程分支
- 推送到远程分支(创建远程分支dev):
git push origin master:dev - 查看所有分支:
git branch -a - 删除远程分支:
git push origin :dev(推送一个空分支到远程分支,相当于删除远程分支) - 删除远程分支:
git push origin --delete dev
怪异盒模型和IE盒模型有什么区别
- IE盒模型:
- 四个部分组成:
content、padding、border、margin - 盒子总宽度 = width + padding + border + margin;
- 盒子总高度 = height + padding + border + margin
- 怪异盒模型:
- 盒子总宽度 = width + margin;
- 盒子总高度 = height + margin;
- 也就是,
width/height包含了padding和border值
Box-sizing
box-sizing: content-box|border-box|inherit:
- content-box 默认值,元素的 width/height 不包含 padding,border,与标准盒子模型表现一致
- border-box 元素的 width/height 包含 padding,border,与怪异盒子模型表现一致
- inherit 指定 box-sizing 属性的值,应该从父元素继承
event loop 事件循环如何理解?
因为js是单线程的,如果某段程序需要等待一会再执行,后面的程序都会被阻塞,这样也就带来了一些问题。为了解决这个问题,js出现了同步和异步两种任务,两种任务的差异就在于执行的优先级不同。event loop就是对任务的执行顺序做了详细的规范。 同步和异步任务 异步任务:异步任务分为宏任务和微任务。 常见的微任务有:Promise.then(),.then中的逻辑是微任务;process.nextTick(node环境)。 常见的宏任务有:setTimeout、setInterval、setImmediate(node环境)、xhr(发送网络请求),callback。 同步任务:除了上面的这些情况,都属于同步任务。 任务的执行顺序: 先到后:同步任务 -> 微任务 -> 宏任务。
数组方法有哪些(写出几个es5的方法),什么意思?
-
遍历方法
- map : 映射数组,得到一个映射之后的新数组
- filter:筛选数组
- forEach:遍历数组
- some:判断数组是否有元素满足条件(相当于逻辑或:一真则真,全假为假)
- every:判断数组是否所有满足都满足条件(相当于逻辑与:一假则假,全真为真)
- findIndex:查找元素下标,一般用于元素是引用类型
- reduce:给数组每一个元素执行一次回调,一般用于数组元素求和(也可以求最大值、最小值)
-
增删改查方法
- push() : 末尾新增元素,返回值是新数组长度
- unshift():开头新增元素,返回值是新数组长度
- pop() :末尾删除元素,返回值是删除的那个末尾元素
- shift(): 开头删除元素,返回值是开头的那个末尾元素
- splice() : 删除指定下标元素,第三个参数是一个剩余参数,可以在删除的元素后面插入元素
-
其他方法
- reverse:翻转数组,会修改数组自身
- sort: 数组排序,会修改数组自身
- json: 拼接数组元素,返回值是拼接之后的字符串
- slice: 根据下标范围查询数组元素,返回值是查询后的新数组
- indexOf: 查询元素下标,一般用于元素是值类型
扩展运算符与rest剩余参数什么意思,应用场景?
- 扩展运算符:把数组或类数组展开成用逗号分隔的值
- 将数组展开成用逗号隔开的值:
- 将两个数组合并成一个数组:
- 扩展一个字符串:
- rest参数:把逗号隔开的值组成一个数组
- 不定参数的函数求和:
- 通过…来接收参数,把逗号隔开的值组合成一个数组:
- 获取剩余的参数:
- 用于解构赋值:
- 总结...有两种含义,这两种操作相当于是互逆操作:
- 若把…放在等号左边或者放在形参上面,那么它就是rest参数
- …若在等号的右边或者放在实参上,则是扩展运算符
es6新增数据解构Set,Map代表什么意思?利用期中一种去重?
- Map :对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值)都可以作为一个键或一个值。
- 特点 :
Map 对象这种数据结构和和对象类型,都已键值对的形式存储数据,即 key-vlue 形式。
Map 对象存储的数据是有序的,而我们平常使用的对象是无序的,所以通常当我们需要使用对象形式(键值对)存储数据且需要有序时,采用 Map 对象进行存储。
Map 对象的键值可以是任意类型,我们平时使用的对象只能使用字符串作为键。
Set: 和 Map 类似,我们同样先来看一看官网是怎么解释 Set 这个数据结构的。
Set 对象是一个类数组对象,它长得就很像数组。 Set 对象存储的值是不重复的,所以我们通常使用它来实现数组去重。 Set 对象存储的数据不是键值对的形式,而且它可以存储任何类型的数据。
说下你理解的Promise?用promise封装一个网络请求,代码核心?
- promise 是 es6 新增的一种解决异步回调的一种方案,可以理解为就是把异步操作的回调函数的写法变成 链式写法.then .catch promise ⼀共有三个状态,分别是进⾏中,成功或者失败 如何成功的话可以通过 resolve ⽅法将正确结 果返回出去,通过.then 的⽅式进⾏接受,失败的话可以通过 reject 的⽅式将失败的结果返回出去,通 过.catch 的⽅式进⾏接受,pending 状态是进⾏中,⼀旦进⾏之后,他的状态是不可逆的 如果要使⽤ promise,我们需要对 promise 进⾏实例化,在实例化的构造函数⾥⾯有⼀个回调函数,这个 回调函数⾥⾯有两个参数,分别是 resolve 和 reject,我们可以通过 promise 的实例化对象调⽤.then 或 者.catch ⽅式接受结果
说一下es6的导入导出?
export default :导出 import from :导入