
面试系列
文章平均质量分 86
C+ 安口木
https://github.com/ytanck/
生命不息,coding不止...
展开
-
Vue中nextTick实现原理
通过这样分成三步、循序渐进的方式,我们深入探讨了 「nextTick」 的原理和实现机制。希望这篇文章能够对你有所帮助,让你在前端开发的道路上更加得心应手!🚀。原创 2025-01-14 14:33:40 · 1043 阅读 · 0 评论 -
react中super() 和 super(props) 有什么区别?
在React中,类组件基于ES6,所以在中必须使用super在调用super过程,无论是否传入propsReact内部都会将porps赋值给组件实例porps属性中如果只调用了super(),那么this.props在super()和构造函数结束之间仍是undefined。原创 2024-06-24 09:43:41 · 431 阅读 · 0 评论 -
react中state 和 props 有什么区别?
组件从概念上看就是一个函数,可以接受一个参数作为输入值,这个参数就是。具有单向数据流的特性,所以他的主要作用是从父组件向子组件中传递数据。一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是。的核心思想就是组件化思想,页面会被切分成一些独立的、可复用的组件。在内部不可变的,如果想要改变它看,只能通过外部组件传入新的。来改变,从而达到更新组件内部数据的作用,并且重新调用组件。还可以接受第二个参数,它是一个函数,会在。当需要修改里面的值的状态需要通过调用。来重新渲染子组件,否则子组件的。原创 2024-06-24 09:42:59 · 406 阅读 · 0 评论 -
Real DOM 和 Virtual DOM 的区别?
真实DOM 和 虚拟DOM 的区别原创 2024-06-19 14:35:08 · 1096 阅读 · 0 评论 -
说说React Jsx转换成真实DOM过程?
在react源码中,虚拟Dom转化成真实Dom使用React.createElement或JSX编写React组件,实际上所有的 JSX 代码最后都会转换成React.createElement(…) ,Babel帮助我们完成了这个转换的过程。createElement函数对key和ref等特殊的props进行处理,并获取defaultProps对默认props进行赋值,并且对传入的孩子节点进行处理,最终构造成一个虚拟DOM对象。原创 2024-06-19 14:31:04 · 473 阅读 · 0 评论 -
JavaScript 中内存泄漏的几种情况
并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“垃圾回收程序运行的时候,会标记内存中存储的所有变量。然后,它会将所有在上下文中的变量,以及被在上下文中的变量引用的变量的标记去掉。这很麻烦,所以大多数语言提供自动内存管理,减轻程序员的负担,这被称为"垃圾回收机制"程序的运行需要内存。语言中,因为是手动管理内存,内存泄露是经常出现的事情。原创 2024-06-18 16:10:39 · 440 阅读 · 0 评论 -
Javascript前端本地存储之localStorage、sessionStorage、cookie、indexedDB区别及使用
Javascript前端本地存储之localStorage、sessionStorage、cookie、indexedDB区别及使用原创 2024-05-16 10:39:15 · 888 阅读 · 0 评论 -
JS深拷贝浅拷贝的区别?如何实现一个深拷贝?
深拷贝开辟一个新的栈,两个对象属完成相同,但是对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。浅拷贝只复制属性指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存,修改对象属性会影响原对象。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。如果属性是基本类型,拷贝的就是基本类型的值。深拷贝是递归拷贝深层次,属性为对象时,深拷贝是新开栈,两个对象指向不同的地址。浅拷贝是拷贝一层,属性为对象时,浅拷贝是复制,两个对象指向同一个地址。原创 2024-05-16 10:36:15 · 750 阅读 · 0 评论 -
JavaScript 前端面试知识点总结
本部分主要是笔者在复习 JavaScript 相关知识和一些相关面试题时所做的笔记,如果出现错误,希望大家指出!js 一共有五种基本数据类型,分别是 Undefined、Null、Boolean、Number、String,还有在 ES6 中新增的 Symbol 和 ES10 中新增的 BigInt 类型。Symbol 代表创建后独一无二且不可变的数据类型,它的出现我认为主要是为了解决可能出现的全局变量冲突的问题。原创 2024-04-18 16:58:00 · 935 阅读 · 0 评论 -
经典面试智力题总结
本部分主要是笔者在练习常见面试智力题所做的笔记,如果出现错误,希望大家指出!原创 2024-03-20 10:01:04 · 605 阅读 · 0 评论 -
axios的原理及源码解析
axios解析原创 2024-01-17 10:12:31 · 1378 阅读 · 0 评论 -
什么是虚拟DOM?如何实现一个虚拟DOM?
虚拟 DOM ()这个概念相信大家都不陌生,从React到Vue,虚拟DOM为这两个框架都带来了跨平台的能力(和Weex实际上它只是一层对真实DOM的抽象,以JavaScript对象 (VNode节点) 作为基础的树,用对象的属性来描述节点,最终可以通过一系列操作使这棵树映射到真实环境上在Javascript对象中,虚拟DOM表现为一个Object对象。并且最少包含标签名 (tag)、属性 (attrs) 和子元素对象 (children) 三个属性,不同框架对这三个属性的名命可能会有差别创建虚拟。原创 2024-01-16 09:58:27 · 1204 阅读 · 0 评论 -
Vue组件之间的通信方式都有哪些?
vue组件通讯、父子组件传值原创 2024-01-15 09:46:58 · 1097 阅读 · 0 评论 -
说说你对贪心算法、回溯算法的理解?应用场景?
贪心算法,又称贪婪算法,是算法设计中的一种思想其期待每一个阶段都是局部最优的选择,从而达到全局最优,但是结果并不一定是最优的举个零钱兑换的例子,如果你有1元、2元、5元的钱币数张,用于兑换一定的金额,但是要求兑换的钱币张数最少如果现在你要兑换11元,按照贪心算法的思想,先选择面额最大的5元钱币进行兑换,那么就得到11 = 5 + 5 + 1 的选择,这种情况是最优的但是如果你手上钱币的面额为1、3、4,想要兑换6元,按照贪心算法的思路,我们会 6 = 4 + 1 + 1这样选择,这种情况结果就不是最优的选择原创 2024-01-15 09:43:55 · 1070 阅读 · 0 评论 -
什么是分而治之和动态规划?
是重叠子问题,当n = 1、2的时候,对应的值为2,这时候就通过可以使用一个数组记录每一步计算的结果,以此类推,减少不必要的重复计算。动态规划,同样是算法设计中的一种方法,是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。分而治之是算法设计中的一种方法,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。的,而分而治之的子问题是相互独立的。原创 2024-01-15 09:43:09 · 1081 阅读 · 0 评论 -
什么是冒泡排序?如何实现?
并且从上述比较中看到,只有后一个元素比前面的元素大(小)时才会对它们交换位置并向上冒出,对于同样大小的元素,是不需要交换位置的,所以对于同样大小的元素来说,相对位置是不会改变的,因此, 冒泡排序是稳定的。时间复杂度是 O(N 2 ),相比其它排序算法,这是一个相对较高的时间复杂度,一般情况不推荐使用,由于冒泡排序的简洁性,通常被用来对于程序设计入门的学生介绍算法的概念。而在每轮排序中都需要对相邻的两个元素进行比较,在最坏的情况下,每次比较之后都需要交换位置,此时时间复杂度为。原创 2024-01-12 10:12:53 · 632 阅读 · 0 评论 -
什么是二分查找
如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。在计算机科学中,二分查找算法,也称折半搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。实际上,除了有序的数组可以使用,还有一种特殊的数组可以应用,那就是轮转后的有序数组。对比普通的二分查找法,为了确定目标数会落在二分后的哪个部分,我们需要更多的判定条件。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束。如果在某一步骤数组为空,则代表找不到。原创 2024-01-12 10:11:41 · 900 阅读 · 0 评论 -
微信小程序中路由跳转的方式有哪些?区别?
navigateTo 保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页redirectTo 关闭当前页面,跳转到应用内的某个页面switchTab 跳转到 tabBar 页面,同时关闭其他非 tabBar 页面navigateBack 返回上一页面reLanch 关闭所有页面,打开到应用内的某个页面其中关于它们的页面栈的关系如下:avigateTo 新页面入栈redirectTo 当前页面出栈,新页面入栈。原创 2024-01-11 10:01:48 · 1576 阅读 · 0 评论 -
说说微信小程序的登录流程?
传统的web开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录服务端校验用户信息通过之后,下发一个代表登录态的token给客户端,以便进行后续的交互,每当token过期,用户都需要重新登录而在微信小程序中,可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系,从而实现登陆功能实现小程序用户体系主要涉及到openid和codewx.login()codecodeopenid对于每个小程序,微信都会将用户的微信ID映射出一个小程序。原创 2024-01-11 10:00:31 · 1075 阅读 · 0 评论 -
微信小程序的生命周期函数有哪些?
跟vuereact框架一样,微信小程序框架也存在生命周期,实质也是一堆会在特定时期执行的函数。原创 2024-01-10 09:59:06 · 1746 阅读 · 0 评论 -
程序员必备的面试技巧
一般人回答这个问题过于平常,只说姓名、年龄、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,要突出积极的个性和做事的能力,说的合情合理企业才会相信。原创 2024-01-09 17:28:59 · 896 阅读 · 0 评论 -
css选择器有哪些?优先级?哪些属性可以继承?
CSS选择器是CSS规则的第一部分它是元素和其他部分组合起来告诉浏览器哪个HTML元素应当是被选为应用规则中的CSS属性值的方式选择器所选择的元素,叫做“选择器的对象”我们从一个Html结构开始</</</</</</</关于css属性选择器常用的有:id选择器(#box),选择id为box的元素类选择器(.one),选择类名为one的所有元素标签选择器(div),选择标签为div的所有元素后代选择器(#box div),选择id为box元素内部所有的div元素。原创 2024-01-09 09:36:46 · 890 阅读 · 0 评论 -
说说你对CSS预编语言的理解?sass、less、stylus有什么区别?
Css作为一门标记性语言,语法相对简单,对使用者的要求较低,但同时也带来一些问题需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少Css编写经验而很难写出组织良好且易于维护的Css代码Css预处理器便是针对上述问题的解决方案。原创 2024-01-09 09:35:23 · 1310 阅读 · 0 评论 -
面试官:什么是回流跟重绘?什么场景下会触发?
在HTML中,每个元素都可以理解成一个盒子,在浏览器解析过程中,会涉及到回流与重绘:回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置重绘:当计算好盒模型的位置、大小及其他属性后,浏览器根据每个盒子特性进行绘制具体的浏览器解析渲染机制如下所示:解析HTML,生成DOM树,解析CSS,生成CSSOM树将DOM树和CSSOM树结合,生成渲染树(Render Tree)Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小)原创 2024-01-08 09:44:50 · 922 阅读 · 0 评论 -
css中有哪些方式可以隐藏页面元素?区别?
在平常的样式排版中,我们经常遇到将某个模块隐藏的场景通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用哪一种方法。原创 2024-01-08 09:43:10 · 690 阅读 · 0 评论 -
面试官:说说flexbox(弹性盒flex布局),以及适用场景?
简称flex,意为”弹性布局”,可以简便、完整、响应式地实现各种页面布局采用Flex布局的元素,称为flex容器container它的所有子元素自动成为容器成员,称为flex项目item容器中默认存在两条轴,主轴和交叉轴,呈90度关系。项目默认沿主轴排列,通过来决定主轴的方向每根轴都有起点和终点,这对于元素的对齐非常重要。原创 2024-01-05 10:03:20 · 1348 阅读 · 0 评论 -
面试官:CSS3新增了哪些新特性?
css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更美观css3是css的最新标准,是向后兼容的,CSS1/2的特性在CSS3里都是可以使用的而CSS3也增加了很多新特性,为开发带来了更佳的开发体验。原创 2024-01-05 10:00:00 · 412 阅读 · 0 评论 -
面试官:如何实现两栏布局,右侧自适应?三栏布局中间自适应呢?
在日常布局中,无论是两栏布局还是三栏布局,使用的频率都非常高。原创 2024-01-04 10:51:32 · 1149 阅读 · 0 评论 -
面试官:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?
内联元素居中布局块级元素居中布局。原创 2024-01-04 10:50:35 · 973 阅读 · 0 评论 -
CSS中em/px/rem/vh/vw有什么区别
px:绝对单位,页面按精确像素展示em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单。原创 2024-01-03 09:51:44 · 968 阅读 · 0 评论 -
面试官:说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?
CSS像素(css pixel, px): 适用于web编程,在 CSS 中以 px 为后缀,是一个长度单位在 CSS 规范中,长度单位可以分为两类,绝对单位以及相对单位px是一个相对单位,相对的是设备像素(device pixel)一般情况,页面缩放比为1,1个CSS像素等于1个设备独立像素CSS在同一个设备上,每1个 CSS 像素所代表的设备像素是可以变化的(比如调整屏幕的分辨率)在不同的设备之间,每1个 CSS 像素所代表的设备像素是可以变化的(比如两个不同型号的手机)原创 2024-01-03 09:49:11 · 973 阅读 · 0 评论 -
面试官:Node.js是什么?有什么作用?优缺点?
Node.js是一个开源与跨平台的JavaScript运行时环境在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能可以理解为Node.js就是一个服务器端的、非阻塞式I/O的、事件驱动的JavaScript运行环境。原创 2024-01-02 10:08:14 · 395 阅读 · 0 评论 -
面试官:说说对 Node 中的 fs模块的理解? 有哪些常用方法?
fs(filesystem),该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装可以说,所有与文件的操作都是通过fs核心模块实现这个模块对所有文件系统操作提供异步(不具有sync后缀)和同步(具有sync后缀)两种操作方式,而供开发者选择。原创 2023-12-27 10:24:36 · 535 阅读 · 0 评论 -
React中super() 和 super(props) 有什么区别?
在React中,类组件基于ES6,所以在中必须使用super在调用super过程,无论是否传入propsReact内部都会将porps赋值给组件实例porps属性中如果只调用了super(),那么this.props在super()和构造函数结束之间仍是undefined。原创 2023-12-26 10:11:54 · 818 阅读 · 0 评论 -
说说你对Redux的理解?其工作原理?
React是用于构建用户界面的,帮助我们解决渲染DOM的过程而在整个应用中会存在很多个组件,每个组件的state是由自身进行管理,包括组件定义自身的state、组件之间的通信通过props传递、使用Context实现数据共享如果让每个组件都存储自身相关的状态,理论上来讲不会影响应用的运行,但在开发及后续维护阶段,我们将花费大量精力去查询状态的变化过程这种情况下,如果将所有的状态进行集中管理,当需要更新状态的时候,仅需要对这个管理集中处理,而不用去关心状态是如何分发到每一个组件内部的redux。原创 2023-12-26 10:10:16 · 771 阅读 · 0 评论 -
React Router有几种模式?实现原理?
在单页应用中,一个web项目只有一个html页面,一旦页面加载完成之后,就不用因为用户的操作而进行页面的重新加载或者跳转,其特性如下:改变 url 且不让浏览器像服务器发送请求在不刷新页面的前提下动态改变浏览器地址栏中的URL地址。原创 2023-12-25 10:18:40 · 777 阅读 · 0 评论 -
面试官:说说你对React Router的理解?常用的Router组件有哪些?
react-router-native:基于 react-router,加入了 react-native 运行环境下的一些功能。react-router-dom: 基于 react-router,加入了在浏览器运行环境下的一些功能。作为顶层组件包裹其他组件后,页面组件就可以接收到一些路由相关的东西,比如。组件的作用适用于当匹配到第一个组件的时候,后面的组件就不应该继续匹配。等前端路由的原理大致相同,可以实现无刷新的条件下切换显示不同的页面。用于路由的重定向,当这个组件出现时,就会执行跳转到对应的。原创 2023-12-25 10:15:45 · 1245 阅读 · 0 评论 -
说说对React refs 的理解?应用场景?
Refs在计算机中称为弹性文件系统(英语:Resilient File System,简称ReFS)React中的Refs提供了一种方式,允许我们访问DOM节点或在render方法中创建的React元素本质为返回的组件实例,如果是渲染组件则返回的是组件实例,如果渲染dom则返回的是具体的dom节点。原创 2023-12-21 09:56:42 · 1100 阅读 · 0 评论 -
说说对React Hooks的理解?解决了什么问题?
组件式开发选择合适的css解决方案尤为重要在这一方面,vue使用css而在react中,引入CSS就不如Vue方便简洁,其引入css的方式有很多种,各有利弊。原创 2023-12-21 09:53:55 · 1333 阅读 · 0 评论 -
说说Vue生命周期的理解?在created和mounted这两个生命周期中请求数据有什么区别
(例如。原创 2023-12-20 10:00:53 · 1081 阅读 · 0 评论