一些简单的基础题目|豆包MarsCode AI刷题

32 阅读3分钟

HTML

哪些是块级元素,哪些是行内元素

块级元素:div、form、table、p、h1、ul、ol、blockquote

行内元素:span、a、img、strong、input、button、label

CSS

盒模型概念

CSS3 中的盒模型有以下两种:标准盒模型IE(替代)盒模型

两种盒子模型都是由 content + padding + border + margin 构成,其大小都是由 content + padding + border 决定的,但是盒子内容宽/高度(即 width/height)的计算范围根据盒模型的不同会有所不同:

  • 标准盒模型:只包含 content
  • IE(替代)盒模型:content + padding + border

可以通过 box-sizing 来改变元素的盒模型:

  • box-sizing: content-box :标准盒模型(默认值)。
  • box-sizing: border-box :IE(替代)盒模型。

JavaScript

基本的数据类型介绍,及值类型和引用类型的理解

在 JS 中共有 8  种基础的数据类型,分别为: Undefined 、 Null 、 Boolean 、 Number 、 String 、 Object 、 Symbol 、 BigInt 。

  • Symbol 代表独一无二的值,最大的用法是用来定义对象的唯一属性名。
  • BigInt 可以表示任意大小的整数。

防抖

原理:多次点击时会等待一次任务执行完成后重新执行新的任务

代码实现:

function debounce(){
    let timer;
    return function(){
        if(timer) clearTimeout(timer)
        timer=setTimeout(function(){
            ###  //业务逻辑
        },t)  //t为传入参数
    }
}

节流

原理:多次点击时会取消上一次的点击,重新执行这个任务

代码实现:

function throttle(){
    let timer=null;
    return function(){
        if(!timer){
            timer=setTimeout(function(){
               ###  //业务逻辑
               timer=null
            },t)
        }
    }
}

解构赋值对象,是深拷贝还是浅拷贝

要求:使用...解构对象,判断深浅拷贝

结论:基本数据类型为深拷贝,嵌套数据类型为浅拷贝

const obj = {
  prop1: "value1",
  prop2: {
    nestedProp: "nestedValue",
  },
};

// 使用扩展运算符进行复制
const obj2 = { ...obj };

console.log("原始对象 obj:", obj);
console.log("复制后的对象 obj2:", obj2);

// 修改基本类型属性
obj2.prop1 = "newValue1";
console.log("修改基本类型属性后:");
console.log("原始对象 obj:", obj);
console.log("复制后的对象 obj2:", obj2);

// 修改嵌套对象的属性
obj2.prop2.nestedProp = "newNestedValue";
console.log("修改嵌套对象属性后:");
console.log("原始对象 obj:", obj);
console.log("复制后的对象 obj2:", obj2);

数组中改变自身和不改变自身的方法

改变自身:

  1. push:添加最后一个元素
  2. pop:删除最后一个元素
  3. shift:添加第一个元素
  4. unshift:删除第一个元素
  5. splice:通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。
  6. sort:排序
  7. reserve:反转

不改变自身:

  1. concat:返回一个新数组,这个新数组是由调用该方法的数组和其他数组或值连接而成。
  2. slice:返回一个新的数组,包含从原数组中提取的元素。可以指定起始位置和结束位置(不包括结束位置的元素)。
  3. indexOf:返回在数组中最后一次出现的指定元素的索引,如果不存在则返回 -1。
  4. includes:判断数组是否包含指定的元素,返回一个布尔值。
  5. join:将数组的所有元素连接成一个字符串,并返回这个字符串。可以指定连接元素的分隔符。