当前位置:首页|资讯

coderwhy深入前端就业指导+八股文|言果fx

作者:有课维_itspcool发布时间:2024-09-16

在前端面试中,有一些常见的知识点和代码示例通常会被问到。

//下崽棵>>> 3w  baikeu  点  com


以下是一个深入的前端面试八股文,涵盖了 JavaScript、CSS、HTML 和框架等方面。

### 1. JavaScript 基础


#### 1.1 数据类型

JavaScript 有六种基本数据类型:


- `Undefined`

- `Null`

- `Boolean`

- `Number`

- `BigInt`

- `String`

- `Symbol`


```javascript

console.log(typeof undefined); // "undefined"

console.log(typeof null);      // "object"

console.log(typeof true);      // "boolean"

console.log(typeof 42);        // "number"

console.log(typeof "Hello");   // "string"

```


#### 1.2 闭包

闭包是函数与其引用环境组合而成的结构。


```javascript

function outerFunction() {

    let count = 0;

    return function innerFunction() {

        count++;

        return count;

    };

}


const counter = outerFunction();

console.log(counter()); // 1

console.log(counter()); // 2

```


#### 1.3 原型链

每个 JavaScript 对象都有一个内部链接到另一个对象的属性,这个对象叫做原型。


```javascript

function Person(name) {

    this.name = name;

}

Person.prototype.sayHello = function() {

    console.log(`Hello, my name is ${this.name}`);

};


const john = new Person("John");

john.sayHello(); // "Hello, my name is John"

```


### 2. DOM 操作


#### 2.1 获取元素

使用 `document.getElementById`、`document.querySelector` 等方法获取 DOM 元素。


```javascript

const element = document.getElementById('myElement');

const allDivs = document.querySelectorAll('div');

```


#### 2.2 修改元素

通过 `innerText`, `style` 或 `setAttribute` 修改元素属性。


```javascript

element.innerText = "New Text";

element.style.color = "red";

element.setAttribute("data-custom", "value");

```


### 3. CSS 相关


#### 3.1 Flexbox 布局

Flexbox 是一种一维布局模型,可以有效地排列子元素。


```css

.container {

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100vh;

}


.item {

    flex: 1;

}

```


#### 3.2 CSS Grid

Grid 是一种二维布局模型。


```css

.grid-container {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 10px;

}


.grid-item {

    background-color: lightblue;

    padding: 20px;

}

```


### 4. 异步编程


#### 4.1 Promises

Promises 提供了一种更优雅的方式来处理异步操作。


```javascript

const fetchData = () => {

    return new Promise((resolve, reject) => {

        setTimeout(() => {

            resolve("Data fetched!");

        }, 2000);

    });

};


fetchData().then(data => console.log(data));

```


#### 4.2 Async/Await

Async/Await 语法使得异步代码看起来像同步代码。


```javascript

const getData = async () => {

    const data = await fetchData();

    console.log(data);

};


getData(); // "Data fetched!"

```


### 5. 算法与数据结构


#### 5.1 数组去重

使用 Set 来去重数组。


```javascript

const uniqueArray = (arr) => [...new Set(arr)];


console.log(uniqueArray([1, 2, 2, 3, 4, 4])); // [1, 2, 3, 4]

```


#### 5.2 深拷贝

实现一个深拷贝函数。


```javascript

const deepClone = (obj) => {

    return JSON.parse(JSON.stringify(obj));

};


const original = { name: "John", address: { city: "NY" } };

const clone = deepClone(original);

clone.address.city = "LA";


console.log(original.address.city); // "NY"

```


### 6. 前端框架(React 示例)


#### 6.1 组件

创建一个简单的 React 组件。


```javascript

import React from 'react';


const Welcome = ({ name }) => {

    return <h1>Hello, {name}!</h1>;

};

```


#### 6.2 状态管理

使用 React hooks 管理状态。


```javascript

import React, { useState } from 'react';


const Counter = () => {

    const [count,



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1