2024年八股文前端高频面试题(js、vue2、vue3、uniapp、es6、echarts、webpack、算法、git、hr交流、技巧现状)

前端面试八股文(超详细) JavaScript \1. Promise 的理解 Promise 是一种为了避免回调地狱的异步解决方案 2. Promise 是一种状态机: pending(进行中)、fulfilled(已成功)和rejected(已失败) 只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。 回调地狱 回调函数中嵌套回调函数的情况就叫做回调地狱。 回调地狱就是为是实现代码顺序执行而出现的一种操作,它会造成我们的代码可读性非常差,后期不好维护。 一、Promise是什么? Promise是最早 阅读详情
AI摘要

本文聚焦2024年前端高频面试题,着重围绕Vue2展开。涵盖了Vue2的生命周期、组件传值、VueX使用、路由模式、API运用、指令自定义及原理等多方面内容,还提及了Vue2与Vue3的区别,为前端求职者提供了全面的知识参考。

内容较多需要分几部

一.vue2面试题 - 生命周期有哪些?发送请求在created还是mounted?

1.1.生命周期有哪些

vue2.X系统自带有8个
beforeCreate  
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy
destroyed

1.2.进入组件执行哪些生命周期

beforeCreate
created
beforeMount
mounted

1.3在created中如何获取dome

只要异写异步代码,获取dom在异步中获取的就可以
列
定时器方法
setTimeout(()=>{
    获取dome的方法
})

vue自带nextTick方法
this.$nextTick(res=>{
获取dome的方法
})

1.4为什么发送请求不在beforeCreate里?

如果请求是在methods封装好的,在beforeCreate掉用的时候是拿不到methods里面的方法的

1.5beforeCreate和created有什么区别

beforeCreate中没有$data
created中有$data

created中是可以拿到methods中的方法的

 1.6.父组件引入子组件生命周期执行顺序 

父组件引入了子组件,会先执行父组件的前3个生命周期,再执行子组件的4个生命周期

父:beforeCreat、create、beforeMount
子:beforeCreate、create、beforeMount、mounted
...
父:mounted

1.7发送请求在created中mounted?

这个问题需要看具体情况,按照上面的父组件引入子组件的顺序来看,   
如果需要优先加载子组件内容需要再mounted中,如果组件间没有依赖关系,在哪个都可以

1.8加入keep-alive组件会执行哪些生命周期

如果使用了keep-alive组件,当前的组件会额外增加两个生命周期(系统8+2)

activated     进入到组件   激活时
deactivated   销毁时

如果加入keep-alive第一次进入会执行5个生命周期

beforeCreate
created
beforeMount
mounted
activated

1.9第二次或者第N次进入组件会执行哪些生命周期

activated

如果没加入keep-valive会永远执行
beforeCreate
created
beforeMount
mounted

2.0你在什么情况下使用过哪些生命周期,说一说生命周期的使用场景

created       单组件请求
mounted       同步获取dom, 如果子组件先请求父组件再请求
activated     判断id是否相同,如果不相同发起请求
deactivated   关闭页面记录视频播放时间,初始化的时候从上一记录开始

二.关于组件

2.1组件传值(通信)的方式

父传后代 (后代拿到了父的数据)
1.子组件通过props来接受父的传参
props:{
    str1:{
        type:String,
        default:''
      }
}
*这种方式父传子方便,但是传孙子背比较困难,并且不能修改父组件中的数据*

2.子组件直接使用父组件中的数据
子组件通过  this.$parent.xxx使用父组件中的数据
*子组件可以直接修改父组件中的数据*
*缺点:这可能会破坏组件的封装性和可维护性。*

3.依赖注入
 优势:父组件可以直接向某个后代组件传递参数,(不需要一级一级的找)
后代传父(父拿到了后代的数据)
1.子组件传给父组件
     子组件自定义事件  this.$emit('事件名字',传值)
     父组件   <组件名 @事件='事件名字'> </组件名>
     在methods中使用

2.
平辈之间传值(兄弟可以拿到数据)

2.2父组件直接修改子组件中的值

1.   使用this.$children
     注意this.$children获取得是一个数据使用的时候应该:   this.$children [索引]
     * 繁琐 *

2.  <组件名 ref='命名'></组件名>
      this.$refs.命名.xxx = 'yyyyy'

2.3子组件如何修改父组件中的值

可以使用  this.$parent.xxx  获取到父组件中的值并修改

2.4如何找到父组件

this.$parent

2.5如何找到根组件

this.$root

2.6keep-alive

keep-alive是什么:  用来缓存当前组件的

2.7slot/插槽

1.匿名插槽:(没有名字)

子组件  
<div>
    <div>返回</div>
    <slot></slot>
</div>
<组件名> <div style='color:pink'>温馨提示</div></组件名>
注意:  匿名插槽中的slot代表的是  组件的包括的所有内容




2.具名插槽(有名字) 
子组件
<div>
    <slot name="title"></slot>
    <div>返回</div>
    <slot name="text"></slot>
</div>
<组件名>
      <template #title>
        <h2 style="color: pink">标题</h2>
      </template>
      <template #text>
        <div style="color: pink">温馨提示</div>
      </template>
</组件名>
注意:  名字需要在template标签中



3.作用域插槽(传值)
子组件
<div>
    <slot name="title"></slot>
    <div>返回</div>
    <slot name="text" :arr='arr'></slot>
</div>
data(){
    return {
        arr:['a','b','c']
    }
}
父组件接收
 <template #text='{arr}'>
     <div style="color: pink">温馨提示</div>
 </template>
注意:   传多个使用,隔开  {arr,list,str}

2.8provide/inject

provide/inject  ===>  依赖注入


// 父级组件提供 'foo'
<template>
  <div>
    <div>{{foo}}</div>
    <son></son>
  </div>
</template>

<script>
import Son from "./Son";
export default {
  name: "parent",
  components: { Son },
  provide() {
    return {
      foo: this.foo
    };
  },
  data() {
    return {
      foo: {
           too:"测试"
        },
    };
  },
  mounted() {
    console.log(this.foo)
  },
};
</script>




//孙级组件,接收foo
<template>
  <div>{{foo}}</div>
</template>

<script>
export default {
  name: "grandSon",
  inject: ["foo"],
  mounted() {
    console.log(this.foo)
  },
};
</script>

2.9如何封装组件

组件一定要难点,设计的知识点:slot,组件通信...

三关于VueX

3.1VueX有哪些属性

1.state 全局共享属性存放数据
2.getters  针对数据进行二次修改
3.mutations 
4.actions
5.modules   

3.2VueX使用state值

1.this.$store.state.xxx

2.辅助函数  mapState
import { mapState } from "vuex";
computed:{
  ...mapState(['str']) 
},
在页面上直接使用str   ,  在方法中this.str


以上两种都可以拿到state的值, 那么他们的区别是什么

使用this.$store.state.xxx  可以直接修改vueX里面的数据
使用辅助函数的形式是不可以修改的(辅助函数是复制了vuex文件里的内容,所以不能修改)

3.3VueX的getters值的修改

getters是针对于数据进行二次修改的

组件使用了getters中的内容,组件使用v-model的形式会发生什么

getters的值是不能被修改的

3.4VueX的mutations和actions区别

相同点:mutations和actions都是来存放全局方法的
这个全局方法return的值拿不到

区别:
mutations ==>>  同步
actions   =>> 返回的诗一个Promise对象,他可以执行相关异步操作

mutations是来修改state的值的,actions的作用是来提交mutations

3.5VueX持久化存储

vuex本身不是持久化存储的数据,vuex是一个状态管理仓库
(state:全局属性)==>>就是存放全局属性的地方
 实现持久化存储:

1.自己写localStorage,
2.使用vuex-persistedstate插件(下方插件使用方式)

下载安装插件进行持久化存储
npm install vuex-persistedstate --save

配置
import createPersistedState from 'vuex-persistedstate'; 
vue.use(Vuex)

// vuex数据持久化配置
  plugins:[
    createPersistedState({
      storage:window.sessionStorage,
      key:"store",
      render(state){
        return {...state} 
      }
    })
  ]

四.关于路由                

4.1路由的模式和区别

1.history
2.hash
区别:
1.关于找不到页面当前页面发送请求的问题
history会给后端发送一次请求
hash不会给后端发送请求

2.关于项目打包前端自测问题
hash 是可以看到内容的
history  默认情况下是看不到内容的

3.关于表象不同
hash:    #
history: /

4.2.子路由和动态路由

4.3路由传值

一.vue路由传值有4种方式

接收方式
mounted () {
  this.num = this.$route.params.num
}


1.利用router-link路由导航来传递
<router-link to = "/跳转路径/传入的参数"></router-link>


2.调用$router.push实现路由传值  (通过事件触发)
deliverParams (id) {
  this.$router.push({path: `/d/${id}`
})
路由配置:{path: '/d/:id', name: D, component: D}
http://localhost:8080/#/d/123


3.通过路由属性中的name来匹配路由,再根据params传递参数值
this.$router.push({
        name: 'B',
        params: {sometext: '熊出没'}
 })
路由配置:{path: '/b', name: 'B', component: B}
http://localhost:8080/#/b


4.通过query来传递参数
this.$router.push({
        path: '/c',
        query: {sometext: '我是光头强'}
 })
路由配置:{path: '/c', name: 'C', component: C}
http://localhost:8080/#/c?sometext=%E8%BF%99%E6%98%AF%E5%B0%8F%E7

4.4导航故障

       官网说明

等待导航结果 | Vue RouterVue.js 的官方路由icon-default.png?t=O83Ahttps://router.vuejs.org/zh/guide/advanced/navigation-failures.html        

解决方法:
在跳转的后面加  .catch(error=>error)

        

4.5$router和$route的区别

       优快云详细使用介绍https://blog.youkuaiyun.com/qq_45838276/article/details/126890883?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172371411616800225554504%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172371411616800225554504&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-126890883-null-null.142^v100^control&utm_term=%24router%E5%92%8C%24route%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187icon-default.png?t=O83Ahttps://blog.youkuaiyun.com/qq_45838276/article/details/126890883?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172371411616800225554504%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172371411616800225554504&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-126890883-null-null.142%5Ev100%5Econtrol&utm_term=%24router%E5%92%8C%24route%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187

1、$router是用来操作路由,不仅包含路由还包含整个路由的属性和方法
   $route是用来获取路由信息,包含当前路由


2. $router是VueRouter的一个实例,他包含了所有的路由,包括路由的跳转方法,
   钩子函数等,也包含一些子对象(例如history)

3.route是一个跳转的路由对象(路由信息对象),每一个路由都会有一个$route对象,是一个局部的对象。

4.6.导航守卫

1.全局守卫
  beforeEach  路由进入之前
  afterEach   路由进入之后

2.路由独享守卫
   beforEnter   路由进入之前

3.组件内守卫
  beforeRouteEnter  路由进入之前
  beforeRouteUpdate 路由更新之前
  beforeRouteleave 路由离开之前

五.关于API

5.1$set

碰到数据更新,视图没有更新的问题==>>$set

$set('需要修改的参数','第几个','修改成什么')
this.$set(target,key,'修改后的值')

5.2$nextTick

在vue的生命周期中,beforeCreate或created中如何去获取dom

1.使用异步获取去,定时器

2.使用vue中自带的API$nextTick
$nextTick返回的参数(函数),是一个异步

源码|原理
$nextTick(callback){
    return Promise.resolve().then(()=>{
    callback();
    })
}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

5.3$refs   

1.this.$refs     获取dome的
使用   
<子组件 ref='命名'></子组件>
this.$refs.命名       获取到子组件信息

5.4 $el

$el   获取当前组件的根节点

5.5$data

$data   获取当前组件的data数据

5.6$children

$children  获取当前组件的说有子组件的,返回的是一个数组

5.7 $parent

$parent   找到当前组件的父组件,如果找不到返回自身

5.8 $root

$root   找到根组件

5.9data定义数据

在data中定义数据,   在return里面和在return外面定义数据的区别

1.return外: 单纯修改数据是不可以被修改的,因为没有get/set
2.return内: 是可以修改的

5.10 computed计算属性

computed的计算属性的结果值,可以修改吗?

可以的,需要通过get/set写法

当前组件v-model绑定的值是computed来的,那么可以修改吗?可以的,需要通过get/set写法

5.11 watch

 深入监听   
 hello: {
      handler(newval, oldval) {
        console.log(newval, oldval);
      },
      immediate:true  //立即侦听
 }

hello(newhello,oldhello){
    console.log(newhello,oldhello);
}

还可以监听路由/路径变化

5.12 methods和computed区别

conputed是有缓存机制的,methods是没有缓存机制的

6.关于指令

6.1如何自定义指令

全局  main.js   

Vue.directive('demo',(
    insetted:function(a,b,c){
        console.log(a,b,c)
    }
))

局部:某一个组件内
export default(
    directives:{
        demo:{
            bind:function(el){
              console.log(1)
            }
        }
    }
)

6.2vue单项绑定

双向绑定  v-model

单项绑定: v-bind

6.3v-if和v-for优先级

vue2 中  v-for > v-if
vue3 中  v-if  > v-for

七.关于原理

7.1.$nextTick原理
$nextTick  获取更新后的dome的

原理
$nextTick(callback){
    return Promise.resolve().then(()=>{
    callback();
    })
}   
7.2.双向绑定原理
1.Object.defineProperty(obj, prop, descriptor) ,这个语法内有三个参数,
分别为 obj (要定义其上属性的对象); prop (要定义或修改的属性); descriptor (具体的改变方法)
2、简单地说,就是用这个方法来定义一个值。当调用时我们使用了它里面的get方法。
当给这个属性赋值时,就调用了它里面的set方法;

var obj = {}
Object.defineProperty(obj,'prototypeName',{
	get: function() { 
		console.log("调用了get") 
	},
	set: function(newValue) {
		console.log("调用了set,新值是"+newValue)  
	}
})

obj.prototypeName    // 调用了get
obj.prototypeName = 'hello'   // 调用了set,新值是hello

一.Vue框架篇

vue2.x生命周期
1.有哪些生命周期
系统自带
beforeCreate  
created
beforeMount
mounted
beforeUpdate
updated
beforeDestroy  //销毁
destroyed

2.一旦进入到页面或组件,会执行哪些生命周期,顺序
beforeCreate  
created        
beforeMount       
mounted       

3.在哪个阶段有$el(这个组件的根节点),在哪个阶段有$data(data中return数据)
beforeCreate  
created           $data
beforeMount       $data
mounted       $el $data

4.如果加入了keep-alive会多两个生命周期
activated   ,   deactivated

5.如果加入了keep-alive第一次或第二次进入会执行哪些生命周期
第一次进入执行5个生命周期
beforeCreate  
created        
beforeMount       
mounted   
activated
第二次进入执行1个生命周期
activated
谈谈你对keep-alive的了解
1.是什么
vue系统自带的一个组件,功能:是来缓存组件的. >>提升性能

2.使用场景
就是来缓存组件的,提升项目的性能,具体实现比如,首页进入到详情页,如果用户在首页每次点击都是相同的,
直接缓存就可以了,当然如果点击的不是同一个,那么直接请求
v-if和v-show区别
1.展示形式不同
v-if是 创建一个dome节点
v-show 是把dome节点隐藏起来, display:none   block

2.使用场景
初次加载v-if要比v-show好,页不会做加载盒子
频繁切换,  v-show要比v-if好,创建和删除开销太大,  隐藏起来比较好

ref是什么
来获取dome的
vue提供获取dome的东西
nextTick是什么
异步获取dome
列:获取最新的dome
scoped原理
样式在本组件中生效
vue组件之间如何传值
1.父组件 传值 子组件
2.子组件 传值 父组件
3.兄弟组件之间传值
使用bus 建立一个中转js, 
引入bus.js文件

使用bus.$emit('自定义事件',传值)
兄弟组件使用bus.$on('自定义事件',data=>{
    
    })接收
computed ,  methods , watch有什么区别
1.computed  vs  methods有什么区别
computed在dome中使用连续调用只执行一次,有缓存
methods在dome中连续调用,会执行多次,没有缓存


1.computed  vs  watch有什么区别
watch是监听,数据或者是路由发生了改变才可以响应(执行)
computed计算某一个属性的改变,如果某一个值改变了,计算属性监听到了就会返回

23.vue2和vue3的区别

前端常见面试八股文 HTML篇 1、H5新增标签有哪些? 一、语义化标签 header、footer、nav、aside、section、article 语义化的意义? 1、更适合搜索引擎的爬虫爬取有效的信息,利于SEO。 2、对开发团队很友好,增加了标签的可读性,结构更加的清晰,便于团队的开发和维护。 二、多媒体标签 视频标签:video 属性:src、 Poster(加载等待画面的图片)、muted(静音) 音频标签: audio 属性:src、loop、controls(调出当前控件) 三、表单元素、控件 输入框inpu 阅读详情

相关推荐

前端面试题八股文汇总(最新)

前言:小伙伴们,本篇文章是博主自己在面试过程中的一些面试题的记录,自己在总结回顾记录的同时希望也能帮助到你们,可以结合对应的知识点去理解和查看!有什么不对的地方欢迎伙伴们指正!大家一起学习 小提示重要!:简历上的内容(项目+技能)自己一定要准备好,防止被问起。 一 、 1.开发中遇到的困难? 问题:才开始做项目的时候,以为插件使用简单,vue项目中轮播图的使用,swiper插件的使用,查看官方的文档是一定要有节点DOM(相应的结构)渲染出来才会有对应的动态效果。 vue中mounted生命周期函数–&gt

qq_59079803的博客 3万+

前端面试——八股文

前端面试——八股文

[ 「今でもあなたは私の光。」❤️如今你依旧是我的光。 1万+

手把手教你编写I2C读写EEPROM代码(驱动层实现)

从底层寄存器配置到时序控制,详解如何编写可移植的I2C读写EEPROM代码,覆盖起始信号、地址帧、数据收发及ACK应答等关键环节,确保在STM32、ESP32等主流平台稳定运行,真正落地i2c读写eeprom代码需求。

weixin_35756130的博客 507

前端面试“八股文”

"前端八股文"通常指的是前端面试中被频繁提及的一些核心知识点。这些知识点覆盖了前端开发中的基础技能、常见算法、框架使用等方面。

m0_61418032的博客 5025

stm32F103定时器使用方法

文章目录1、STM32的Timer简介2、普通定时器TIM2-TIM52.1 时钟来源2.2 计数器模式2.3 编程步骤3、程序源代码4、总结 1、STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟

weixin_43582209的博客 4515

H3C无线控制器二层注册实战:从零配置到AP上线全流程(附常见问题排查)

本文详细解析了H3C无线控制器二层注册的全流程,从网络基础准备、AC核心配置到AP上线,重点阐述了CAPWAP隧道建立的关键步骤。文章提供了清晰的典型配置示例,并针对AP无法上线、状态异常等常见问题,给出了六种典型故障现象的排查思路与解决命令,帮助网络工程师快速定位并解决问题。

weixin_29214199的博客 546

2023Web前端开发八股文&面试题(万字系列)——这篇就够了!

2023Web前端开发面试题&八股文万字长篇,涵盖html、css、javascript、浏览器相关、网络传输、算法、Vue、React、打包工具……

upgrade_bro的博客 1万+

手把手教你用 Docker 构建自己的 CentOS 基础镜像

目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏...

Nick.Peng's Blogs 1万+

史上最全前端八股文

史上最全前端八股文

qq_40795662的博客 5645

Microchip Studio 7.0 从零开始:下载、安装到首个AVR工程实战

本文为AVR单片机开发新手提供了Microchip Studio 7.0的完整入门指南。从官方下载、避坑安装,到创建首个GCC C工程、编写LED闪烁代码,再到项目配置、仿真调试与程序烧录,手把手带你完成从零到一的实战过程,是掌握AVR开发环境的必备教程。

weixin_29200741的博客 522

华为OD机试 新系统真题 【最小代价完成论文评审】

华为OD机试 新系统真题【最小代价完成论文评审】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小代价完成论文评审】多语言题解。

qq_45776114的博客 443

前端js八股文大全

前端js八股文大全

qq_46372132的博客 3957

2025年06月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析

2025年06月中国电子学会青少年软件编程(Python)等级考试试卷(二级)答案 + 解析

伶俐角少儿编程 459

【面试】前端面试八股文

前端面试八股文,随时整理更新

weixin_64210950的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

前端面试八股文以及答案总结

前端面试题总结,后期会添加一些详解

weixin_42425391的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

2026个人前端面试总结(八股文+项目情况)持续更新 要PDF的私,挂在上面下载优快云要收费

汇总了一些个人还记得面试前端常见的面试题。

weixin_45712370的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

前端面试(常见八股+手撕代码)

本文系统梳理了前端面试中的核心知识点,分为八股文和手写代码两部分。八股文部分涵盖JavaScript基础(数据类型、作用域、闭包等)、进阶概念(原型链、继承、Promise等)、Vue原理和性能优化等内容。手写代码部分包含20+高频面试题实现,如bind/call/apply、深拷贝、防抖节流、Promise.all等。文章采用问答形式组织内容,突出面试重点,既包含理论知识又提供代码实现。

Foreverzszhx的博客 3302

前端面试八股文(详细版)—中

本文将详细讲解 React 、git 、webpack等内容,预祝各位成功上岸!

leo的博客 9354

2024最新前端面试题(八股文)一阶段总结(html,css)!!!!新手必看必背!通俗易通!全面!全是干货!

•支持动画,只有全透明和不透明两种模式,只有 256 种颜色,适用于简单动画、徽标和简单图形等应用场景。•常见格式,采用有损压缩算法,保持图像质量的同时减小文件大小 ,体积较小,不支持透明,不支持动画采用无损压缩算法,体积也相对较小,支持透明背景,不支持动画一般会保存颜色及形状相对简单的图片,可任意放大图形显示,边缘异常清晰画质最好,文件太大,不利于网络传输谷歌开发的一种图片格式,较小的文件大小,较高图像质量,格式新,要考虑兼容性.

shixindonga1226的博客 5121

前端八股文

滴滴滴

suuuuuki98的博客 2963

2024前端面试八股文-面经(最全、最详细、最实用、有这一篇就够了)——计算机网络前端八股文面经篇。

2024最全最实用的前端面试八股文。面经分享!

欢愉码农的博客 5476

2024年最全前端面试八股文【很经典 很全面 字字珠玑】【建议收藏+关注】,2024年最新web前端面试题 应届生

协议 子域名 主域名 端口号 资源同源策略是浏览器的核心,如果没有这个策略就会遭受网络攻击主要指的就是协议+域名+端口号三者一致,若其中一个不一样则不是同源,会产生跨域三个允许跨域加载资源的标签:img link script跨域是可以发送请求,后端也会正常返回结果,只不过这个结果被浏览器拦截了!JSONPCORSwebsocket反向代理。

2401_84412050的博客 7715

前端面试经典八股文(一)

数据类型 (9种) 基本数据类型(栈):Number,String,Boolean,null,undefined,symbol(创建唯一值),bigint(后两个为ES6新增) 引用数据类型(堆):object,function 判断数据类型 1、typeof typeof 是一个操作符,返回该类型的字符串(全小写字母)形式表示,包括以下 7种:number、string、boolean、undefined、symbol、object、function 等。(对于 null,返回 object 类

Payne_liu的博客 5244
上一篇: NVM安装NodeJS与Vue项目搭建
下一篇: Vue3+TypeScript+vite
ASS___
博客等级 码龄4年 146粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值