【无标题】

发布于:2025-07-13 ⋅ 阅读:(10) ⋅ 点赞:(0)

数据类型
基本数据类型:number、string、boolean、null、undefined
引用数据类型:object、array、function
null与undefined的区别
null表示一个空值或者不存在的对象
undefined表示一个变量被声明了但没有被赋值,访问没初始化的变量或者对象中不存在的属性
null==undefined true   null===undefined false
如何判断js的数据类型
typeof  注意:[ ]、{ }、null返回都是object
Object.prototype.toString.call() 最准确返回值"[object Number]"

Array.isArray()

instanceOf
数组常用的方法
.length 获取长度
.push  末尾添加
.unshift 开头添加
.pop   末尾删除
.shift   开头删除
.concat 数组合并 返回新数组
.slice   截取数组,返回新数组
.splice  删除或添加指定索引的元素
.sort   数组排序 
.join   数组转换成字符串
.reverse 翻转数组

.tostring 数组转换为字符串,用,分隔

forEach 遍历数组
map 便利操作数组返回新数组
filter 过滤数组返回新数组

find 找出符合条件元素

findIndex 找出符合条件的索引

reduce 数组累加求和
==与===的区别

== 等于 两边值相等就相等返回true

===绝对等于 两边必须值和类型都相等的同时才返回true
如何区别是数组还是对象
Array.isArray()、[] instanceof Array 、obejct.prototype.toString.call([]) ['object Array']
多为数组转换一维数组
arr.flat(infinity)  infinity深度
如何判断两个对象是否相等
Object.is(obje1,obj2)
类型强制转换和隐式转换
强转换:Number()、toString()  隐式转换:数学运算符
什么是类数组、如何将其转换为真是数组
类数组的特点 类数组又称对象数组
1、具有length属性
2、按索引方式存储数据
3、不具有数组的push、pop等方法
通过array.from将其转换为真实数组

如何遍历对象的所有属性
object.keys()

作用域和作用域链的区别
作用域即变量和函数所生效的范围,作用域又分为全局作用据和函数作用域

全局作用域下的变量和函数可随意被调用和赋值,容易造成全局污染
函数作用域下的变量的和函数,只能在当前作用域下访问和使用不会造成全局污染
什么是作用域链
就是当访问一个变量或函数的时候,会现在当前作用域去查找,当前作用域没有就会去上一层作用域去查找,一直查找到全局作用域,这个查找的过程就叫做作用域链

解释一下什么是回调函数

把一个函数作为参数传给另一个函数,等那个函数完成任务后再调用你传进去的函数

常见的回调函数 setTimeout、setInterval promise 数组方法forEach 事件监听

解释下什么是闭包

什么是内存泄漏,哪些方法会导致内存泄漏

内存泄漏:是指不再使用的内存没有被释放
未清除的setIntervalsetTimeout ,未清除的事件监听 闭包等
原型与原型链

在对象中每个对象都会有一个prototype内部属性,这个属性就是所谓对象的原型,通过原型可以继承和访问其他对象的属性和方法

原型链就是当我们访问一个对象的属性的时候会现在对象中去查找,如果对象中没有就回去对象的原型上去查找知道查早到或查找为null这个过程就叫做原型链
js的继承方法
原型链继承、构造函数继承 、组合继承、class类继承

this指向问题

默认情况下this只想window

箭头函数中没有自己的this指向他只想最近又this的父级

普通函数中谁调用函数this就指向谁

构造函数中指向构造函数的实例化对象
 

for in与for of 的区别

forin既可以遍历数组也可以遍历对象,forof只能用来遍历可迭代对象数组字符串set、map

call、apply、bind的区别

都是用于改变this指向的,区别在于传参方式与执行机制的不同

call是以若干个参数的方式进行传递参数,立即执行

apply是以数组的方式进行传递参数,立即执行

bind的传参方式与call相同但执行机制不同,需要再次手动调用
事件循环机制-宏任务与微任务的区别

js的执行机制,因为js是单线程语言,代码执行的顺序是按照从上到下的顺序去执行的,当代码执行的时候会先执行主线程的代码,当遇到异步任务的时候,会先将异步任务添加到任务队列当中,当主线程任务执行完毕后在执行异步队列上的任务,任务队列又分为红任务和微任务,常见的宏任务又settimeout、setinterval,常见的微任务有promise的回调

js防抖和节流

防抖
节流

new操作符都做了写什么

js数组去重

js深拷贝与浅拷贝的区别

js的垃圾回收机制

普通函数与构造函数的区别
堆与栈的区别
ajax、axios、fetch的区别
同源策略

为什么会出现跨域,如何解决

get与post的区别

http与https的区别

cookie、sessionstorage、localstroage的区别

一个页面从输入url到页面加载完成这个过程都发生了什么

websocket

强缓存与协商缓存的区别---http缓存

es6有哪些新增的方法

var、let 、const的区别

amd、cmd commonJ、requirejs的区别

箭头函数与普通函数的区别

set、map的区别

settimeout、promise、async/await的区别

讲一下promise

promise.all()

手写一个promise

如果promise先执行resolve在执行reject返回的是什么

同步和异步的区别

webpack

loader与plugin的区别

如何利用 Webpack 来优化前端性能
如何提高 Webpack 的构建速度
怎么实现 Webpack 的按需加载
mvvm 和 mvc 区别
Vue 数据双向绑定的原理是什么
Object.defineProperty 和 Proxy 的区别
Vue 生命周期
第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子函数
封装 Vue 组件的过程
确定业务需求,把页面中可以服用的结构,样式以及功能,单独 抽离成一个文件,实现复用
. 使用 Vue.component 方法注册组件,子组件需要数据,可以在 props 中接
受定义,而子组件修改好数据后,想把数据传递给父组件。可以采用$emit 方法
向外抛数据
2. 如果需要给组件传入模板,则定义为插槽 slot
3. 如果需要 父组件主动调用子组件的方法 可以在 methods 选项中开放方
Vue 组件如何进行传值
组件中写 name 选项有什么作用
1, 项目使用 keep-alive 时,可搭配组件 name 进行缓存过滤
Vue 组件 data 为什么必须是函数
怎么在组件中监听路由参数的变化
怎么捕获 Vue 组件的错误信息
Vue 中 solt 的使用方式

Vue 该如何实现组件缓存

keep-alive

Vue 常用的指令都有哪些

vue的自定义指令

v-show与v-if的区别

为什么v-if 和 v-for不能同时使用

watch、methods 和 computed 的区别
怎么在 watch 监听开始之后立即被调用
immediate: true 将立即以表达式的当前值触发回调
什么是 Vue 的计算属性
Vue 中 key 值的作用是什么
vuex
Vue-Router 是干什么的
query 和 params 之间的区别是什么?
$route 和$router 的区别是什么
hash 模式和 history 模式
Vue.js 的 template 编译的理解
说一下你在 Vue 中踩过的坑(必会)
1、第一个是给对象添加属性的时候,直接通过给 data 里面的对象添加属性
然后赋值,新添加的属性不是响应式的
【解决办法】通过 Vue.set(对象,属性,值)这种方式就可以达到,对象新添
加的属性是响应式的
1、在 created 操作 dom 的时候,是报错的,获取不到 dom,这个时候实例 Vue
实例没有挂载
【解决办法】通过:Vue.nextTick(回调函数进行获取)
、Vue 项目优化的解决方案都有哪些?(必会)
1、 使用 mini-css-extract-plugin 插件抽离 css
2、 配置 optimization 把公共的 js 代码抽离出来
3、 通过 webpack 处理文件压缩
4、 不打包框架、库文件,通过 cdn 的方式引入
5、 小图片使用 base64
6、 配置项目文件懒加载
7、 UI 库配置按需加载
8、 开启 Gzip 压缩
使用 Vue 的时候加载造成页面卡顿,该如何解决
你知道 style 上加 scoped 属性的原理吗
SPA 单页面
怎样理解 Vue 的单向数据流
VNode 是什么?什么是虚拟 DOM?
Vue 中操作 data 中数组的方法中哪些可以触发视图更新,
哪些不可以,不可以的话有什么解决办法?
如何对 Vue 首屏加载实现优化? (高薪常问)
1、把不常改变的库放到 index.html 中,通过 cdn 引入
2、Vue 路由的懒加载
3、不生成 map 文件
4、Vue 组件尽量不要全局引入
5、使用更轻量级的工具库
6、开启 gzip 压缩
7、首页单独做服务端渲染
、Vue 的 nextTick 的原理是什么
Vue 中数组和对象已经更新,但是视图无法实现更新
Vue3 和 Vue2的区别
Vue3 关于性能方面做了那些优化
引入 tree-shaking 的技术,减少打包体积。
-数据劫持优化,使用 Proxy 代替 defineProperty 实现数据响应式。
项目中为什么要引入 normalize.css
虚拟列表
插槽
回流和重绘
一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些
方法优化这些图片的加载,给用户更好的体验。
大文件上传和断点续传 进度条显示如何实现
单点登录
响应式布局,媒体查询、百分比、vw/vh、rem
var、let 、const
reflect
数据请求在created和mounted的区别
为什么data属性是一个函数而不是一个对象
动态给vue的data添加一个新的属性时会发生什么?如何解决
v-show与v-if的区别
vue中key的与哪里
vue的mixin
vue2的diff算法和vue3的diff算法的区别
自定义指令
什么是虚拟dom
vue的权限管理该怎么做
vue3的组合式api与选项式api的区别
vue3性能提升主要通过那几个方面
webpack的理解?解决了什么问题
webpack的热更新
webpack的构建流程
webpack的proxy工作远离,为什么能解决跨域
webpack中loader和plugin的区别
如何借助webpack来优化前端性能
前端常见的设计模式
ts与js的区别
ts数据类型有哪些
requestAnimationFrams是什么如何使用
promise写一个最大的并发
手写todolist
微前端
前端更新部署后如何通知用户刷新
如何一次性渲染十万条数据还能保证页面不卡顿
vue的数据双向绑定原理
vue2与vue3响应式原理的理解
vue2中如何检测数组的变化
移动端有刘海屏和没有刘海屏是如何做适配的
如果要把webpack的配hi改为vite的配置该如何做
如果把一个vue2项目改为vue3的项目要如何做
ref与reactive的区别
flex 11auto都代表什么
promise.all是串行还是并行
为什么v-for不建议使用index作为key
直接俄给一个数组赋值,vue能检测到变化吗
什么时候会考虑封装组件
vue的单向数据流
会修改原数组和不会修改原数组的方法
使用promsie实现每隔1秒输出1,2,3,
一次发任意多个请求,如果有失败,则重发,知道所有的都成功,护着超出最大重试次数才返回最终结果
一次性到处10万条数据生成excel文件,页面卡顿 如何优化
如果一个url打开非常慢,怎么定位,怎么处理
rollup是什么

网站公告

今日签到

点亮在社区的每一天
去签到