面试题

85 阅读4分钟

CSS3有哪些新属性

border-radius:圆角边框

box-shadow:盒子阴影

background-size:背景图片大小

Snipaste_2023-02-10_16-53-02.png Snipaste_2023-02-10_16-53-31.png transition:过渡 transform:转换(位移 旋转 缩放) 1675253309698-9b1eb30f-53ce-44bf-9eb3-1f4dfb05aa93.gif

animation:动画

1675253309698-9b1eb30f-53ce-44bf-9eb3-1f4dfb05aa93.gif

 <style>
    body {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
    }



    .box {
      width: 100px;
      height: 100px;
      /* 使用动画 */
      animation: myMove 3s infinite;
    }

    /* 定义动画 */
    @keyframes myMove {
      0% {
        background: green;
        transform: scale(1);
      }

      100% {
        background: red;
        transform: scale(2);
        border-radius: 50%;
      }
    }
  </style>
<body>
  <div class="box"></div>

</body>
  • linear-gradient:线性渐变

git核心概念有哪些

是版本管理工具

  •  工作区 workspace
  • ​ 暂存区 index
  • ​ 本地仓库 repository
  • ​ 远程仓库 remote

git使用.png

git中分支操作有哪些

查看分支 git branch

创建本地分支 git branch dev

删除本地分支 git branch -d dev

切换分支 git checkout dev

合并分支 git merge master

推送到远程分支 git push origin master:dev

查看所有分支 git branch -a

删除远程分支 git push origin :dev git push origin --delete dev

标准盒模型与怪异盒模型有什么区别

标准盒子模型=content(内容)+border(边框)+padding(内边距)

怪异盒子模型=content(内容)(已经包含了 padding 和 border)

event loop事件循环如何理解

  • 同步

    consle.log()

    promise的构造函数

  • 异步

    宏任务:script代码,setTimeout,setInterval,xhr,fetch

    微任务:promise的then,process.nextTick

    所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。 主线程之外,还存在一个”任务队列”(task queue)。只要异步任务有了运行结果,就在”任务队列”之中放置一个事件。 一旦”执行栈”中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。于是结束等待状态,进入执行栈,开始执行。 主线程不断重复上面的第三步。 主线程从”任务队列”中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为 Event Loop(事件循环)。只要主线程空了,就会去读取”任务队列”,这就是 JavaScript 的运行机制。这个过程会循环反复。

数组的方法

1.push() 可以添加一个或多个参数到数组的尾部,添加之后原来的数组会发生改变,返回的是添加后的数组的长度

2.pop() 从数组尾部删除一个元素,原数组会发生改变,返回数组中被删除的元素

3.unshift() 可以添加一个或多个参数到数组的头部,添加后原来的数组会发生改变,返回的是添加后的数组的长度

4.shift() 从数组头部删除一个元素,原数组会发生改变,返回数组中被删除的元素

5.slice() 从数组中截取,如果不传参,会返回原数组。返回截取的值,两个参数 一个是开始的位置,第二个是结束的位置,原数组不变,最多两个参数

6.splice()截取类 没有参数,返回空数组,原数组不变;一个参数,从该参数表示的索引位开始截取,直至数组结束,返回截取的 数组,原数组改变;两个参数,第一个参数表示开始截取的索引位,第二个参数表示截取的长度,返回截取的 数组,原数组改变;三个或者更多参数,第三个及以后的参数表示要从截取位插入的值。

7.reverse() 数组翻转

8.sort() 数组排序

9.join() 数组拼接

10.isArray() 判断是否是数组

11.toString() 数组转字符串

12.concat( ) 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组

扩展运算符与rest剩余参数什么意思,应用场景

  • 扩展运算符:把数组或类数组展开成用逗号分隔的值
  • rest参数:把逗号隔开的值组成一个数组
  • 与解构赋值结合,用于生成数组
  • rest运算符主要是处理不定数量参数,rest参数使得收集参数变得非常简单。

es6新增的set,map代表什么意思,利用其中一种实现数组去重

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Map是ECMAScript 6 的新增特性,是一种新的集合类型,为javascript带来了真正的键/值存储机
制。

set去重方法

Snipaste_2023-02-10_17-13-44.png

说一下对promise的理解,封装一个网络请求,核心代码

promise 是 es6 新增的一种解决异步回调的一种方案,可以理解为就是把异步操作的回调函数的写法变成 链式写法.then .catch promise ⼀共有三个状态,分别是进⾏中,成功或者失败 如何成功的话可以通过 resolve ⽅法将正确结 果返回出去,通过.then 的⽅式进⾏接受,失败的话可以通过 reject 的⽅式将失败的结果返回出去,通 过.catch 的⽅式进⾏接受,pending 状态是进⾏中,⼀旦进⾏之后,他的状态是不可逆的 如果要使⽤ promise,我们需要对 promise 进⾏实例化,在实例化的构造函数⾥⾯有⼀个回调函数,这个 回调函数⾥⾯有两个参数,分别是 resolve 和 reject,我们可以通过 promise 的实例化对象调⽤.then 或 者.catch ⽅式接受结果 Snipaste_2023-02-10_17-17-38.png

说一下es6的导入导出如何使用

import引入

export default导出