![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端面经
文章平均质量分 68
前端面试八股文
深海大凤梨_
数据分析 前端
展开
-
【前端面经】JS-slice, splice, substring的区别
JavaScript提供了多种操作字符串和数组的方法。其中三种最常用的方法是slicesplice和substring。这三种方法都用于提取或操作字符串或数组的一部分。但是,它们具有不同的功能和语法。在本博客文章中,我们将讨论slicesplice和substring之间的区别。原创 2023-05-12 12:53:17 · 472 阅读 · 0 评论 -
【前端面经】JS-for循环、forEach、map方法的使用和区别
在JavaScript中,有多种方法可以遍历数组,其中包括for循环、forEach方法和map方法。这些方法在不同场景下都有各自的优缺点,开发者需要根据实际情况来选择最适合自己的方法。本文将介绍这三种方法的使用和区别,希望对大家有所帮助。原创 2023-05-11 12:56:29 · 1082 阅读 · 0 评论 -
【前端面经】JS-数组方法reduce
reduce()是一个高阶函数,它将一个回调函数作为参数,该回调函数接受四个参数:previousValue(上一个元素的值)、currentValue(当前元素的值)、currentIndex(当前元素的索引)和array(该数组)。reduce()方法通过对数组中的每个元素应用回调函数来“累积”单个值。该累积值在每次调用回调函数时更新,并在最后一次调用后返回。}, 0);// 15在上面的例子中,我们从数组中获得了一个总和。原创 2023-05-11 12:53:26 · 535 阅读 · 0 评论 -
【前端面经】CSS-CSS的工程化
PostCss 和预处理器的不同之处在于,预处理器处理的是类 CSS,而 PostCss 处理的是 CSS 本身。PostCss 做的是类似的事情:它可以编译尚未被浏览器广泛支持的先进 CSS 语法,还可以自动为一些需要额外兼容的语法增加前缀。由于 PostCss 有着强大的插件机制,支持各种各样的扩展,它极大地强化了 CSS 的能力。总之,Webpack 在处理 CSS 方面,提供了非常丰富的 loader 和插件,让我们可以非常方便地进行 CSS 工程化的开发。预处理器是 CSS 世界的“轮子”。原创 2023-05-10 13:04:10 · 626 阅读 · 0 评论 -
【前端面经】CSS-什么是媒体查询?
媒体查询是响应式设计中的一种技术,它可以根据不同的设备类型和特性来设置不同的样式。它由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,例如宽度、高度和颜色。通过媒体查询,我们可以更加精细地控制网站在不同设备上的表现,从而提高网站的用户体验。原创 2023-05-10 12:53:03 · 778 阅读 · 0 评论 -
【前端面经】ES6-ES6 有哪些新特性?
对象字面量增强是一种更简洁的定义对象的方式,可以使用简洁的语法来定义对象的属性和方法。例如可以使用变量来作为对象属性的名称,同时也可以使用箭头函数来定义对象的方法。Set 和 Map 是两种新的数据结构,可以用来存储唯一的值和键值对。可以通过解构赋值来快速获取数组或对象中的值,同时也可以用来交换变量的值。模板字符串是一种新的字符串语法,可以使用反引号 `` 来定义字符串,同时可以在字符串中插入变量或表达式,使用。声明的变量具有块级作用域,可以避免变量提升问题,同时也可以避免命名冲突和变量覆盖的问题。原创 2023-05-09 13:08:33 · 1815 阅读 · 0 评论 -
【前端面经】Vue-Vue Router 路由有哪些模式?各模式有什么区别?
在 abstract 模式下,路由器不会监听 URL 变化,而是通过调用路由器 API 进行导航。该模式的优点是可以在不需要浏览器 API 的情况下使用路由,比如在 Node.js 等非浏览器环境下。但是,由于需要手动管理路由的变化,使用起来比较麻烦,并且不适用于大多数场景。除了路由模式,Vue Router 还提供了很多其他的功能,例如动态路由、路由嵌套、路由守卫等。在使用 Vue Router 时,我们需要根据实际需求来选择合适的功能,以便更好地完成项目的需求。原创 2023-05-09 13:05:23 · 1930 阅读 · 0 评论 -
【前端面经】Vue-什么是 Vuex?使用 Vuex 有哪些好处?
Vuex是Vue.js框架中用于实现集中式状态管理的插件。在Vue.js中,每个组件都有自己的状态,这些状态可能需要在多个组件之间共享。如果直接在组件之间传递状态,会使代码变得复杂且难以维护。这时候,Vuex就派上用场了。Vuex的主要作用是在多个组件之间共享状态,并且提供了一些工具来方便地管理应用程序的状态。使用Vuex可以将应用程序的状态存储在一个集中的地方,从而使状态管理更加容易、可维护性更高。它还提供了一些工具来简化状态的更改和操作。原创 2023-05-08 13:04:30 · 806 阅读 · 0 评论 -
【前端面经】Vue-Vue中computed和watch区别?
通过本文的介绍,我们可以了解到computed和watch两者的使用场景和区别。当需要进行数值计算,并且依赖于其它数据时,应该使用computed。而当需要在数据变化时执行异步或开销较大的操作时,应该使用watch。这样可以让我们更加有效地使用 Vue 中的这两个特性。希望本篇文章对您理解 Vue 中的computed和watch有所帮助。同时,我们也希望您能够在实际开发中灵活运用,提高开发效率。原创 2023-05-07 17:33:00 · 431 阅读 · 0 评论 -
【前端面经】ES6-块级作用域
在ES6之前,JavaScript只有函数作用域和全局作用域,也就是说,变量的作用域范围只能是函数或者整个代码文件。这种作用域的限制导致了许多不便和不利。比如,同名变量的冲突,变量污染等问题。因此,为了解决这些问题,ES6引入了块级作用域。在ES6中,let和const关键字被引入,使得变量的作用域范围可以被限制在块级别内。这意味着变量能够在一个代码块内部定义,而在该代码块外部不可见。这项特性可以有效地避免变量污染和冲突,提高代码的可读性和可维护性。原创 2023-05-07 16:59:57 · 381 阅读 · 0 评论 -
【前端面经】CSS-less/sass/scss的区别和基本使用
随着Web开发的不断发展,CSS预处理器变得越来越流行。它们为Web开发者提供了一种更高效、更简便的CSS编写方式。Less、Sass以及SCSS作为最受欢迎的三种CSS预处理器,它们都为CSS编写提供了不同的特点和功能。在本篇博客中,我们将会探讨这三种预处理器之间的区别以及它们的基本使用方法。原创 2023-05-06 23:17:00 · 2189 阅读 · 0 评论 -
【前端面经】CSS-浮动和清除浮动的方式
非 IE 浏览器下,父容器不设高度且子元素浮动时,容器高度不会被内容撑开。因此,内容会溢出到容器外面而影响布局,这种现象被称为浮动(溢出)。在最后一个浮动元素后添加一个空的 div,再设置 clear: both 样式,可以清除浮动。这种方式适用于浮动元素的高度未知的情况。">原创 2023-05-06 23:11:12 · 1054 阅读 · 0 评论 -
【前端面经】CSS-CSS选择器和CSS选择器权重
CSS (Cascading Style Sheets) 是用于设计网页的样式表语言,它可以通过选择器来定位网页中的元素并为其添加样式。选择器是CSS的核心概念之一,它可以选择文档中的特定元素。CSS选择器是一种基于模式匹配的机制,它通过将样式规则与文档中的元素进行匹配来为这些元素应用样式。本篇文章将探讨CSS选择器及其权重的相关知识。CSS选择器和CSS选择器权重是CSS的核心概念之一,了解它们的工作原理对于创建高效和精确的样式表非常重要。原创 2023-05-05 12:59:46 · 453 阅读 · 0 评论 -
【前端面经】ES6-Promise:理解链式调用、状态和方法
在现代 JavaScript 中,Promise 已经成为了一个非常流行的特性。它允许开发者编写更易于阅读和维护的异步代码。Promise 是表示可能尚未可用的值的对象。在本篇博客中,我们将深入探讨 Promise 的链式调用、状态和方法。我们将会介绍 Promise 的基本概念,以及它们是如何工作的。我们还将学习如何使用 Promise 来处理异步代码,以及如何将方法调用链接在一起。最后,我们将介绍 Promise 的三种可能状态以及最常用的 Promise 方法。原创 2023-05-05 12:54:00 · 780 阅读 · 0 评论 -
【前端面经】Vue3和Vue2的区别
Vue3是Vue框架的下一个重要版本,它带来了许多令人兴奋的新特性和改进。在本文中,我们介绍了Vue3和Vue2之间的主要区别,包括代码大小和性能、组合式API和TypeScript支持。此外,我们还介绍了Vue3的其他新特性,例如Fragments、Teleport和Suspense。对于正在考虑是否将Vue3用于其项目的开发人员来说,这些信息应该是有用的。Vue3的改进可以提高代码的可读性、可维护性和可靠性,从而使开发人员更容易地开发出高质量的Web应用程序。原创 2023-05-04 12:54:06 · 628 阅读 · 0 评论 -
【前端面经】Vue-Vue项目中的跨域解决方案
在Vue项目中,使用跨域请求是很常见的操作。跨域请求指的是从一个域名的网页去请求另一个域名的资源,这在Web开发中是一种常见的需求。然而,由于浏览器的同源策略,这种跨域请求是不被允许的。本篇文章将介绍在Vue项目中的跨域解决方案。原创 2023-05-04 12:50:38 · 999 阅读 · 0 评论 -
【前端面经】网络-Axios
Axios是一种流行的JavaScript库,用于在浏览器中进行HTTP请求。它基于Promise API,使其非常易于使用和与其他库集成。Axios提供了许多功能,例如请求和响应拦截,自动转换JSON数据等等。在本篇博客中,我们将讨论Axios背后的原理以及如何使用它进行HTTP请求。原创 2023-05-03 18:42:37 · 788 阅读 · 0 评论 -
【前端面经】浏览器-http和https的区别及优缺点?
HTTP和HTTPS都是网络传输协议,用于在客户端和服务器之间传输数据。虽然它们的名字只有一个字母的区别,但它们之间有很大的差别。在本文中,我们将深入探讨HTTP和HTTPS之间的区别以及它们的优缺点。原创 2023-05-02 16:00:00 · 920 阅读 · 0 评论 -
【前端面经】Vue-Vue中的 $nextTick 有什么作用?
nextTick是 Vue.js 中的一个实用方法,它在 DOM 更新完成后执行提供的回调函数。当我们需要在 DOM 更新完成后执行一些操作时,可以使用$nextTick方法来确保操作在正确的时机被执行。在 Vue.js 中,当我们更新了组件的视图之后,DOM 并不会立即更新。相反,Vue.js 会将更新放到一个队列中,并在下一个事件循环中刷新队列,然后才会更新 DOM。这个过程中可能会出现一些问题,例如在更新 DOM 之前访问 DOM 元素,导致获取到的元素并不是最新的。而$nextTick。原创 2023-05-02 08:00:00 · 902 阅读 · 0 评论 -
【前端面经】JS-模块化
JavaScript的模块化方案是为了方便代码的维护和管理,提高开发效率,目前已经形成了几种规范。开发者可以根据不同的项目需求和实际情况选择适合自己的方案,进行开发。原创 2023-05-01 12:00:00 · 667 阅读 · 0 评论 -
【前端面经】JS-精度丢失问题
举例来说,假设我们需要计算购物车中商品的总价钱,假设商品 A 的价格为 0.1 元,商品 B 的价格为 0.2 元,那么根据上述代码的计算结果,购物车中商品的总价钱为 0.30000000000000004 元,而不是预期的 0.3 元,这可能会导致一些问题。综上所述,数字精度丢失是 JavaScript 中一个常见的问题,我们需要在开发中注意这个问题的存在,并采用合适的方法来避免它的出现,以保证程序的正确性和稳定性。因此,在处理货币等需要高精度计算的场景中,我们需要采用一些方法来避免数字精度丢失的问题。原创 2023-05-01 05:30:00 · 548 阅读 · 0 评论 -
【前端面经】JS-对象的可枚举性
JavaScript中的对象是非常重要的数据类型,它们作为编程中的基础构建块,可以被用来表示各种数据结构。该方法接收一个对象作为参数,返回该对象中所有可枚举属性的名称组成的一个数组,该数组中的属性名称按照对象属性定义顺序一致。如果该对象里面的属性没有一个是可枚举性的,则返回空数组。这些方法都可以用来遍历对象的属性,但是只会遍历到可枚举的属性。这样,在对对象进行枚举时,这些属性将不会被包含在内,从而保护对象的安全性。方法,开发者可以更加灵活地控制对象的属性,并保护对象的安全性。要定义或修改的属性描述符。原创 2023-04-30 09:30:00 · 1679 阅读 · 0 评论 -
【前端面经】JS-异步解决方案
JS 异步编程进化史:callback→promise→generator→函数的实现,就是将Generator函数和自动执行器,包装在一个函数里。可以说是异步终极解决方案了。(1)函数相对于Promise处理 then 的调用链,能够更清晰准确的写出代码并且也能优雅地解决回调地狱问题。当然函数也存在一些缺点:因为await将异步代码改造成了同步代码,如果多个异步代码没有依赖性却使用了await会导致性能上的降低,代码没有依赖性的话,完全可以使用的方式。(2)原创 2023-04-30 10:00:00 · 1680 阅读 · 0 评论 -
【前端面经】JS-事件循环
众所周知,Javascript是一门单线程的语言, 单线程即同一时间只能做一件事, 但这并不意味着JavaScript在执行代码的过程中就会一直阻塞,而解决单线程不阻塞的这个机制就叫做事件循环(Event Loop), 也就是同步和异步的概念.原创 2023-04-29 21:07:05 · 1345 阅读 · 0 评论 -
【前端面经】JS-深浅拷贝
浅拷贝:拷贝复杂类型时,仅拷贝对象的指针;当原对象改变时,拷贝对象也会跟着改变。深拷贝:拷贝复制类型时,拷贝对象的值;当原对象改变时,拷贝对象不会跟着改变。原创 2023-04-29 20:41:32 · 1586 阅读 · 0 评论 -
【前端面经】JS-什么是虚拟 DOM?
虚拟 DOM(Virtual DOM)是一种将浏览器 DOM 抽象为 JavaScript 对象的技术,用于提高 DOM 操作的效率和性能。虚拟 DOM 可以在渲染前对组件的变化进行计算,减少 DOM 操作的次数,从而提高渲染性能。在 React 中,每个组件都有一个对应的虚拟 DOM 树,当组件状态发生变化时,React 会比较新旧虚拟 DOM 树的差异,然后只更新需要更新的部分,这样可以避免不必要的 DOM 操作,提高渲染性能。原创 2023-04-28 13:00:46 · 929 阅读 · 0 评论 -
【前端面经】JS-前端有哪些实现跨⻚面通信的方法?
我们可以在一个页面中将用户的个人信息存储在 localStorage 中,然后在另一个页面中读取 localStorage,以获取用户的个人信息。我们可以在用户登录成功后,将用户的登录信息存储在 Cookie 中,然后在另一个页面中读取 Cookie,以获取用户的登录状态。我们可以使用 BroadcastChannel API,在一个页面中发送计数器的值,然后在其他页面中接收计数器的值。我们可以使用 postMessage API,在一个页面中向另一个页面发送消息,然后在另一个页面中接收消息。原创 2023-04-28 12:56:57 · 756 阅读 · 0 评论 -
【前端面经】JS-JS 中 Map 和 WeakMap 有什么区别?
在JavaScript中,Map和WeakMap都是键值对的集合,但它们之间有几个重要的区别。原创 2023-04-27 12:57:27 · 540 阅读 · 0 评论 -
【前端面经】JS-如何使用 JavaScript 来判断用户设备类型?
综上所述,以上方法都存在一定的局限性,需要根据实际情况选择合适的方法来判断用户设备类型。同时,需要进行一定的测试,以保证判断的准确性。在实际应用中,我们可以结合多种方法,提高判断的准确性和稳定性。原创 2023-04-27 12:53:05 · 1812 阅读 · 0 评论 -
【前端面经】js-什么是BOM和DOM? 分别列举一些它们的函数
文档对象模型(DOM)是 W3C 组织推荐的可处理标记扩展语言的标准编程接口。DOM 定义了一系列的接口,通过这些接口可以改变网⻚的内容、结构和样式。DOM 把文档看作一个对象,其顶级对象是document,主要学习的是操作页面元素。浏览器对象模型(BOM)提供了独立于内容而与浏览器窗口进行交互的对象。BOM 把浏览器当作对象来看待,其顶级对象是window,学习的是浏览器窗口交互的一些对象。BOM 是浏览器厂商在各自浏览器上定义,兼容性较差。原创 2023-04-26 12:46:03 · 527 阅读 · 0 评论 -
【前端面经】H5-有哪些常⽤的 HTML 标签?
HTML(Hyper Text Markup Language)是⼀种⽤于创建 Web ⻚⾯的标准标记语⾔。):定义⻚⾯中的标题,h1 表示最⾼级别的标题,h6 表示最低级别的标题。):插⼊⼀个图像,可以通过指定图像的 URL 或相对路径来显示。):定义⼀个超链接,指向另⼀个⽂档或 Web ⻚⾯。):⽤于嵌⼊ JavaScript 脚本代码。):定义⼀个段落,通常⽤于组织⻚⾯内容。):⽤于在⻚⾯中插⼊⼀条⽔平分割线。):⽤于创建⽆序列表和有序列表。):⽤于创建⽤户输⼊表单。):定义 CSS 样式。原创 2023-04-24 12:35:56 · 125 阅读 · 0 评论 -
【前端面经】CSS-常用布局
当我们在Web应用程序中进行页面设计和开发时,布局是构建页面的重要一环。不同的布局方法可以帮助我们实现不同的需求,例如创建响应式页面、多列布局、瀑布流效果等等。原创 2023-04-24 12:47:49 · 83 阅读 · 0 评论 -
【前端面经】CSS-CSS3新增特性
动画这个平常用的也很多,主要是做一个预设的动画。和一些页面交互的动画效果,结果和过渡应该一样,让页面不会那么生硬。新增transition过渡。新增transform转换。新增animation动画。新增颜色表示方式和渐变。原创 2023-01-13 22:23:21 · 82 阅读 · 0 评论 -
【前端面经】JS-闭包
当函数可以记住并访问所在的词法作用域,即使函数是在当前词法作用域之外执行,这就产生了闭包。–《你不知道的JavaScript上卷》个人理解:闭包就是函数中的函数,里面的函数可以访问外面函数的变量,外面的变量的是这个内部函数的一部分。例:其中func_2称为闭包闭包就是在函数中定义并返回另一个函数, 里层的函数调用外层函数的变量, 从而形成闭包. 而因为外层函数的变量被里层函数调用, 就会导致变量不会被垃圾回收机制回收,从而存在内存泄漏的风险。原创 2023-01-13 22:21:59 · 111 阅读 · 0 评论 -
【前端面经】JS-原型和原型链
并不是语言本身的特性,这是各大厂商具体实现时添加的私有属性,虽然目前很多现代浏览器的 JS 引擎中都提供了这个私有属性,但依旧不建议在生产中使用该属性,避免对环境产生依赖。找到它的原型对象, 如果还没有找到, 就会在其构造函数的prototype的__proto__中查找, 这样一层一层向上查找就会形成一个链式结构, 它就称之为。赋值的属性和方法, 是每个实例的实例属性和实例方法, 而不是公共的属性和方法. 为了解决这个问题, 就设计出了。, 这个属性指向一个对象, 这个对象就是此函数的。原创 2023-01-12 16:47:06 · 70 阅读 · 0 评论 -
【前端面经】JS-执行上下文和执行上下文栈
执行上下文是当前JavaScript代码被解析和执行时所在环境的抽象概念, JavaScript中运行任何代码都是在执行上下文中运行的。原创 2023-01-12 16:43:20 · 125 阅读 · 0 评论 -
【前端面经】CSS-回流和重绘
回流(回流)必将引起重绘, 重绘不一定引起回流(重排)原创 2023-01-11 14:19:47 · 753 阅读 · 0 评论 -
【前端面经】JS-this的指向规则
因此,在本篇文章中,我们将重点讨论JavaScript中的this指向机制,并介绍一些常见的应用场景和使用技巧。在一些需要大量重复调用的函数中,由于JavaScript的函数调用机制,频繁创建函数对象会造成一定的性能损失。在箭头函数中,this指向的是定义时函数所在的对象,而不是调用时的对象。因此,在箭头函数中,this的指向是固定的,无法通过bind、apply、call等方法改变。在函数内部,this指向的是调用该函数的对象。在对象方法中,this指向的是调用该方法的对象。原创 2023-01-11 14:14:45 · 108 阅读 · 0 评论 -
【前端面经】JS-内存泄漏和垃圾回收机制
如果id为Node的元素从DOM中移除,该定时器仍会存在,同时,因为回调函数中包含对someResource的引用,定时器外面的someResource也不会被释放。并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。通过设置arr为null,就解除了对数组[1,2,3,4]的引用,引用次数变为 0,就被垃圾回收了。程序的运行需要内存。原创 2023-01-10 10:09:13 · 148 阅读 · 0 评论 -
【前端面经】CSS-flex布局
注意: 声明flex容器后, 子元素的float, clear, vertical-align属性将会失效。原创 2023-01-10 10:05:32 · 89 阅读 · 0 评论