
前端面试题
文章平均质量分 64
搜集大厂面试题
柯晓楠
一位前端技术爱好者
展开
-
JavaScript中的继承与原型链详解
同理,原型对象也是一个对象,它也有自己的原型对象,因此也可以继承它的原型对象的属性。这样的实现避免了引用类型的属性被所有实例共享的问题,在父类实例创建时还可以自定义地传参,缺点是方法都是在构造函数中定义,每次创建实例都会重新赋值一遍方法,即使方法的引用是一致的。在访问一个对象的时候,JavaScript 引擎会执行一个搜索过程,如果在对象实例上发现该属性,该属性值就会被使用,如果没有发现则搜索其原型对象。这就是原型继承链:对象继承其原型对象,而原型对象继承它的原型对象,以此类推。原创 2024-08-06 14:56:17 · 1260 阅读 · 2 评论 -
JavaScript中的闭包与高阶函数详解
当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。var a = 2return barbaz() // 输出: 2foo 函数传递出了一个函数 bar,传递出来的 bar 被赋值给 baz 并调用,虽然这时 baz 是在 foo 作用域外执行的,但 baz 在调用的时候可以访问到前面的 bar 函数所在的 foo 的内部作用域。原创 2024-08-06 14:51:05 · 846 阅读 · 0 评论 -
javascript 中 this 关键字详解
此时 bar 函数,也就是 obj 上的 foo 方法为什么又指向了全局对象呢,是因为 bar 方法此时是作为函数独立调用的,所以此时的场景属于默认绑定,而不是隐式绑定。执行时箭头函数中 this 是全局 window,首先打印出 window 上的属性 a 的值 20,箭头函数返回了一个原型上有个值为 50 的属性 a 的函数对象 func 给 bar;而 bind 方法是设置 this 为给定的值,并返回一个新的函数,且在调用新函数时,将给定参数列表作为原函数的参数序列的前若干项。原创 2024-08-06 14:38:46 · 1203 阅读 · 0 评论 -
面向对象面试题汇总
【代码】面向对象面试题汇总。原创 2024-07-22 15:37:56 · 298 阅读 · 0 评论 -
移动端混合开发面试题汇总
Android混合开发使用Java和H5共同开发界面,通过 JsBridge进行通信,一部分界面首先在本地写好,然后通过网络请求获取数据,进行展示。当然,也可以完全是H5界面,在 WebView中进行展示。权限可以在 Manifest.xml中申请, Android 6.0以上版本可以通过代码动态申请。原创 2024-07-22 15:37:12 · 761 阅读 · 0 评论 -
前端设计模式面试题汇总
设计模式(英语 design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。原创 2024-07-22 15:36:14 · 694 阅读 · 0 评论 -
微信小程序面试题汇总
程序中使用bind关键字绑定事件,但小程序中不能在绑定事件的同时为事件处理函数传递参数,可以为组件提供 data-* 自定义属性传参,其中 * 代表的是参数的名字。事件传参接收传递到的参数:tapTap(e){// 打印结果为:事件传参。原创 2024-07-22 15:35:41 · 7918 阅读 · 0 评论 -
前端性能优化面试题汇总
【代码】前端性能优化面试题汇总。原创 2024-07-22 15:34:56 · 3113 阅读 · 0 评论 -
web前端 React 框架面试200题(七)
【代码】web前端 React 框架面试200题(七)原创 2024-07-21 16:12:25 · 689 阅读 · 0 评论 -
web前端 React 框架面试200题(六)
react-redux 数据传输∶ view-->action-->reducer-->store-->view。看下点击事件的数据是如何通过redux传到view上:view 上的AddClick 事件通过mapDispatchToProps 把数据传到action ---> click:action 的ADD 传到reducer上reducer传到store上 const store = createStore(reducer);原创 2024-07-21 16:11:35 · 746 阅读 · 0 评论 -
web前端 React 框架面试200题(五)
this.props是组件之间沟通的⼀个接⼝,原则上来讲,它只能从⽗组件流向⼦组件。React具有浓重的函数式编程的思想。提到函数式编程就要提⼀个概念:纯函数。它有⼏个特点:给定相同的输⼊,总是返回相同的输出。过程没有副作⽤。不依赖外部状态。this.props就是汲取了纯函数的思想。props的不可以变性就保证的相同的输⼊,⻚⾯显示的内容是⼀样的,并且不会产⽣副作⽤。原创 2024-07-21 16:10:56 · 504 阅读 · 0 评论 -
web前端 React 框架面试200题(四)
Reselect*是一个**选择器库**(用于 Redux ),它使用*memoization*概念。它最初编写用于计算类似 Redux 的应用程序状态的派生数据,但它不能绑定到任何体系结构或库。Reselect 保留最后一次调用的最后输入/输出的副本,并仅在其中一个输入发生更改时重新计算结果。如果连续两次提供相同的输入,则 Reselect 将返回缓存的输出。它的 memoization 和缓存是完全可定制的在构建 React 应用程序时,在多层嵌套组件来使用另一个嵌套组件提供的数据。原创 2024-07-21 16:10:22 · 538 阅读 · 0 评论 -
web前端 React 框架面试200题(三)
纯组件是可以编写的最简单和最快的组件。它们可以替换任何只有 render() 的组件。这些组件增强了代码的简单性和应用程序的性能。Context 通过组件树提供了一个传递数据的方法,从而避免了在每一个层级手动的传递 props 属性在JSX表达式中,一个开始标签(比如)和一个关闭标签(比如)之间的内容会作为一个特殊的属性props.children被自动传递给包含着它的组件。原创 2024-07-21 16:09:52 · 682 阅读 · 0 评论 -
web前端 React 框架面试200题(二)
在 React 中,事件是对鼠标悬停、鼠标单击、按键等特定操作的触发反应。处理这些事件类似于处理 DOM 元素中的事件。但是有一些语法差异,例如:1、 事件使用驼峰命名,而不是仅使用小写。2、 事件作为函数而不是字符串传递。3、 event 参数包含一组特定于事件的属性。每个事件类型都包含自己的属性和行为,只能通过其事件处理程序访问。原创 2024-07-21 16:09:18 · 362 阅读 · 0 评论 -
web前端 React 框架面试200题(一)
1、React是Facebook开发的一款JS库。2、React一般被用来作为MVC中的V层,它不依赖其他任何的库,因此开发中,可以与任何其他的库集成使用,包括Jquery、Backbone等。3、它可以在浏览器端运行,也可以通过nodejs在服务端渲染。4、React的思想非常独特,性能出众,可以写出重复代码少,逻辑清晰的前端代码。原创 2024-07-21 16:08:28 · 1169 阅读 · 0 评论 -
web前端 Vue 框架面试120题(六)
全局定义指令:在vue对象的directive方法里面有两个参数,一个是指令名称,另外一个是函数。组件内定义指令:directives钩子函数:bind(绑定事件触发)、inserted(节点插入的时候触发)、updata(组件内相关更新)钩子函数的参数:el、binding在router目录下的index.js文件中,对path属性加上/:id使用router对象的params idVue中,如何用watch去监听router变化当路由发生变化的时候,在watch中写具体的业务逻辑。原创 2024-07-18 15:54:48 · 550 阅读 · 0 评论 -
web前端 Vue 框架面试120题(五)
Server-Side Rendering 我们称其为SSR,意为服务端渲染指由服务侧完成页面的 HTML 结构拼接的页面处理技术,发送到浏览器,然后为其绑定状态与事件,成为完全可交互页面的过程;解决了以下两个问题:seo:搜索引擎优先爬取页面HTML结构,使用ssr时,服务端已经生成了和业务想关联的HTML,有利于seo首屏呈现渲染:用户无需等待页面所有js加载完成就可以看到页面视图(压力来到了服务器,所以需要权衡哪些用服务端渲染,哪些交给客户端)缺点复杂度:整个项目的复杂度性能会受到影响。原创 2024-07-18 15:48:29 · 944 阅读 · 0 评论 -
web前端 Vue 框架面试120题(四)
【代码】web前端 Vue 框架面试120题(四)原创 2024-07-18 15:42:46 · 455 阅读 · 0 评论 -
web前端 Vue 框架面试120题(三)
【代码】web前端 Vue 框架面试120题(三)原创 2024-07-18 15:36:45 · 339 阅读 · 0 评论 -
web前端 Vue 框架面试120题(二)
自定义指令的生命周期,有 5 个事件钩子,可以设置指令在某一个事件发生时的具体行为:bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。原创 2024-07-18 15:30:42 · 512 阅读 · 0 评论 -
web前端 Vue 框架面试120题(一)
自定义指令分为全局指令和组件指令,其中全局指令需要使用directive来进行定义,组件指令需要使用directives来进行定义,具体定义方法同过滤器filter或者其他生命周期,具体使用方法如下:全局自定义指令 directive(name,{}),其中name表示定义的指令名称(定义指令的时候不需要带v-,但是在调用的时候需要哦带v-),第二个参数是一个对象,对象中包括五个自定义组件的钩子函数,具体包括:bind函数:只调用一次,指令第一次绑定在元素上调用,即初始化调用一次,原创 2024-07-18 15:24:33 · 465 阅读 · 0 评论 -
web前端面向对象面试25题
【代码】web前端面向对象面试25题。原创 2024-07-18 15:14:19 · 411 阅读 · 0 评论 -
Git 代码管理面试59题(二)
复刻(fork)是对存储仓库(repository)进行的远程的、服务器端的拷贝,从源头上就有所区别。复刻实际上不是 Git 的范畴。它更像是个政治/社会概念。- 克隆(clone)不是复刻,克隆是个对某个远程仓库的本地拷贝。克隆时,实际上是拷贝整个源存储仓库,包括所有历史记录和分支。- 分支(branch)是一种机制,用于处理单一存储仓库中的变更,并最终目的是用于与其他部分代码合并Git中的大多数操作只需要本地文件和资源来运行 - 通常不需要来自网络上另一台计算机的信息。原创 2024-07-18 15:00:28 · 413 阅读 · 0 评论 -
Git 代码管理面试59题(一)
SubGit 是将 SVN 到 Git迁移的工具。它创建了一个可写的本地或远程 Subversion 存储库的 Git 镜像,并且只要你愿意,可以随意使用 Subversion 和 Git。这样做有很多优点,比如你可以从 Subversion 快速一次性导入到 Git 或者在 Atlassian Bitbucket Server 中使用SubGit。我们可以用 SubGit 创建现有 Subversion 存储库的双向 Git-SVN 镜像。原创 2024-07-18 14:46:56 · 1051 阅读 · 0 评论 -
web前端基础面试85题(三)
柯里化,是函数式编程的一个重要概念。它既能减少代码冗余,也能增加可读性。另外,附带着还能用来装逼。先给出柯里化的定义:在数学和计算机科学中,柯里化是一种将使用多个参数的一个函数转换成一系列使用一个参数的函数的技术。柯里化的定义,理解起来有点费劲。为了更好地理解,先看下面这个例子:// 6毫无疑问,sum 是个简单的累加函数,接受3个参数,输出累加的结果。假设有这样的需求,sum的前2个参数保持不变,最后一个参数可以随意。那么就会想到,在函数内,是。原创 2024-07-18 14:24:15 · 492 阅读 · 0 评论 -
web前端基础面试85题(二)
FOUC(Flash Of Unstyled Content)--文档样式闪烁<br /></style>而引用CSS文件的@import就是造成这个问题的罪魁祸首。IE会先加载整个HTML文档的DOM,然后再去导入外部的CSS文件,因此,在页面DOM加载完成到CSS导入完成中间会有一段时间页面上的内容是没有样式的,这段时间的长短跟网速,电脑速度都有关系。解决方法简单的出奇,只要在<head>之间加入一个<link>或者<script>元素就可以了<br />原创 2024-07-18 14:05:37 · 710 阅读 · 0 评论 -
web前端基础面试85题(一)
1、什么是HTML语义化?<基本上都是围绕着几个主要的标签,像标题(H1~H6)、列表(li)、强调(strong em)等等>根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。2、为什么要语义化?为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构:为了裸奔时好看;用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;原创 2024-07-18 13:52:01 · 1824 阅读 · 0 评论 -
HTML/CSS 常见面试题汇总
HTML面试题1、<image> 标签上title属性与alt属性的区别是什么?alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的。且长度必须少于100个英文字符或者用户必须保证替换文字尽可能的短。这包括那些使用本来就不支持图像显示或者图像显示被关闭的浏览器的用户,视觉障碍的用户和使用屏幕阅读器的用户等。title属性为设置该属性的元素提供建议性的信息。使用ti...原创 2020-04-06 17:51:08 · 13912 阅读 · 3 评论 -
【大厂面试】微医前端面试40问
介绍JS数据类型,基本数据类型和引用数据类型的区别Array是Object类型吗数据类型分别存在哪里a. var a = {name: “前端开发”}; var b = a; a = null那么b输出什么b. var a = {b: 1}存放在哪里c. var a = {b: {c: 1}}存放在哪里栈和堆的区别垃圾回收时栈和堆的区别数组里面有10万个数据...原创 2020-04-06 17:44:42 · 1374 阅读 · 0 评论 -
【大厂面试】海康威视前端面试15问
knex连接数据库响应回调介绍异步方案如何处理异常捕获项目如何管理模块前端性能优化JS继承方案如何判断一个变量是不是数组变量a和b,如何交换事件委托标签生成的Dom结构是一个类数组类数组和数组的区别dom的类数组如何转成数组介绍单⻚面应用和多⻚面应用redux状态树的管理介绍localstorage的API...原创 2020-04-06 17:43:55 · 3777 阅读 · 1 评论 -
【大厂面试】寺库前端面试20问
介绍Promise的特性,优缺点介绍ReduxRN的原理,为什么可以同时在安卓和IOS端运行RN如何调用原生的一些功能介绍RN的缺点介绍排序算法和快排原理堆和栈的区别介绍闭包闭包的核心是什么网络的五层模型HTTP和HTTPS的区别HTTPS的加密过程介绍SSL和TLS介绍DNS解析JS的继承方法介绍垃圾回...原创 2020-04-06 17:42:49 · 348 阅读 · 0 评论 -
【大厂面试】喜马拉雅前端面试30问
ES6新的特性介绍PromisePromise有几个状态说一下闭包React的生命周期componentWillReceiveProps的触发条件是什么React16.3对生命周期的改变介绍下React的Filber架构画Filber渲染树介绍React高阶组件父子组件之间如何通信Redux怎么实现属性传递,介绍下原理Re...原创 2020-04-06 17:42:09 · 1644 阅读 · 0 评论 -
【大厂面试】携程前端面试8问
手写两道算法题对React看法,有没有遇到一些坑对闭包的看法,为什么要用闭包手写数组去重函数手写数组扁平化函数介绍下Promise的用途和性质Promise和Callback有什么区别React生命周期...原创 2020-04-06 17:41:32 · 1234 阅读 · 0 评论 -
【大厂面试】饿了么前端面试25问
小程序里面开⻚面最多多少React子父组件之间如何传值Emit事件怎么发,需要引入什么介绍下React高阶组件,和普通组件有什么区别一个对象数组,每个子对象包含一个id和name,React如何渲染出全部的name在哪个生命周期里写其中有几个name不存在,通过异步接口获取,如何做渲染的时候key给什么值,可以使用index吗,用id好还是index好...原创 2020-04-06 17:40:58 · 1001 阅读 · 0 评论 -
【大厂面试】沪江前端面试23问
介绍下浏览器跨域怎么去解决跨域问题jsonp方案需要服务端怎么配合Ajax发生跨域要设置什么(前端)加上CORS之后从发起到请求正式成功的过程xsrf跨域攻击的安全性问题怎么防范使用Async会注意哪些东⻄Async里面有多个await请求,可以怎么优化(请求是否有依赖)Promise和Async处理失败的时候有什么区别Redux在状态管理...原创 2020-04-06 17:40:06 · 239 阅读 · 0 评论 -
【大厂面试】有赞前端面试24问
Linux 754 介绍介绍冒泡排序,选择排序,冒泡排序如何优化transform动画和直接使用left、top改变位置有什么优缺点如何判断链表是否有环介绍二叉搜索树的特点介绍暂时性死区ES6中的map和原生的对象有什么区别观察者和发布-订阅的区别react异步渲染的概念,介绍Time Slicing 和 Suspense16.X声明周期的...原创 2020-04-06 17:39:10 · 2383 阅读 · 0 评论 -
【大厂面试】蘑菇街前端面试15问
html语义化的理解<b>和<strong>的区别对闭包的理解工程中闭包使用场景介绍this和原型使用原型最大的好处react设计思路为什么虚拟DOM比真实DOM性能好react常⻅的通信方式redux整体的工作流程redux和全局对象之间的区别Redux数据回溯设计思路单例、工厂、观察者项目中实际...原创 2020-04-06 17:38:17 · 340 阅读 · 0 评论 -
【大厂面试】今日头条前端面试17问
对async、await的理解,内部原理介绍下Promise,内部实现清除浮动定位问题(绝对定位、相对定位等)从输入URL到⻚面加载全过程tcp3次握手tcp属于哪一层(1 物理层 -> 2 数据链路层 -> 3 网络层(ip)-> 4 传输层(tcp) -> 5 应用层(http))redux的设计思想接入redux的过...原创 2020-04-06 17:37:25 · 445 阅读 · 0 评论 -
【大厂面试】滴滴前端面试28问
react-router怎么实现路由切换react-router里的<Link>标签和<a>标签有什么区别<a>标签默认事件禁掉之后做了什么才实现了跳转React层面的性能优化整个前端性能提升大致分几类import { Button } from ‘antd’,打包的时候只打包button, 分模块加载,是怎么做到的使用i...原创 2020-04-06 17:36:20 · 893 阅读 · 0 评论 -
【大厂面试】网易前端面试26问
介绍redux,主要解决什么问题文件上传如何做断点续传表单可以跨域吗promise、async有什么区别搜索请求如何处理(防抖)搜索请求中文如何请求介绍观察者模式介绍中介者模式观察者和订阅-发布的区别,各自用在哪里介绍react优化介绍http2.0通过什么做到并发请求http1.1时如何复用tcp连接介绍servi...原创 2020-04-06 17:35:32 · 361 阅读 · 0 评论