首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分享63个最常见的前端面试题及其答案

19、匿名函数的典型用例是什么? 匿名函数,也称为函数表达式,是在没有指定名称的情况下定义的函数。它们通常用于需要一个函数作为另一个函数的参数的情况或创建自调用函数时。...另一方面,属性会更新 DOM 元素本身,例如其类型或值。 21、宿主对象和本机对象有什么区别? 宿主对象由环境提供,例如浏览器中的窗口或文档对象。...本机对象(如数组或字符串)是 ECMAScript 规范的一部分,它们的行为由语言本身定义。 22、解释可变对象和不可变对象之间的区别。JavaScript 中不可变对象的示例是什么?...当在脚本或函数的开头使用时,它会强制执行更严格的规则并防止常见错误。严格模式会禁用某些容易出错的功能,帮助捕获无声错误,并促进更安全、更可靠的代码。 46、块元素和行内元素有什么区别?...经典继承通常用在像 Java 或 C# 这样的语言中,这些语言需要严格的类层次结构,并且对象之间的关系是固定的和层次化的。当设计具有明确定义的类结构和继承关系的复杂系统时,它可能是合适的。

8.5K21

分享 63 道最常见的前端面试及其答案

19、匿名函数的典型用例是什么? 匿名函数,也称为函数表达式,是在没有指定名称的情况下定义的函数。它们通常用于需要一个函数作为另一个函数的参数的情况或创建自调用函数时。...另一方面,属性会更新 DOM 元素本身,例如其类型或值。 21、宿主对象和本机对象有什么区别? 宿主对象由环境提供,例如浏览器中的窗口或文档对象。...本机对象(如数组或字符串)是 ECMAScript 规范的一部分,它们的行为由语言本身定义。 22、解释可变对象和不可变对象之间的区别。JavaScript 中不可变对象的示例是什么?...当在脚本或函数的开头使用时,它会强制执行更严格的规则并防止常见错误。严格模式会禁用某些容易出错的功能,帮助捕获无声错误,并促进更安全、更可靠的代码。 46、块元素和行内元素有什么区别?...经典继承通常用在像 Java 或 C# 这样的语言中,这些语言需要严格的类层次结构,并且对象之间的关系是固定的和层次化的。当设计具有明确定义的类结构和继承关系的复杂系统时,它可能是合适的。

34930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    React 中必会的 10 个概念

    ❞ 目录 箭头函数 默认参数 模板字符串 let 和 const 类 解构 三元运算符 导入/导出模块 async / await 展开运算符 / 不定参数 箭头函数 您可能知道,定义React组件的最简单方法是编写...您可能已经看过或使用过以下内容: ? 为了防止函数崩溃或计算无效 / 错误结果,我们必须编写额外的代码来测试每个可选参数和分配的默认值。确实,此技术用于避免我们的函数内部发生不良影响。...在 ES6 中,模板字符串由反引号引起来。要在这些模板中插入表达式,我们可以使用${表达式}。 ? 模板字符串使这种替换更具可读性。在 React 中使用它们将帮助您动态设置组件属性值或元素属性值。...在 React 应用程序中,您还可以使用 ES6 类来定义组件。要定义一个 React 组件类,您需要扩展 React.Component 基类,如下所示: ?...但是,如果 reject,则会引发错误。您可以使用 Promise catch 方法或 try..catch 与常规抛出相同的方式来处理错误。 ?

    6.6K30

    五个特性,让你升级React

    Error boundaries是 React 组件,只有class类组件才可以成为错误边界组件。它会在其子组件树中的任何位置捕获 js错误,并记录这些错误,展示降级 UI 而不是崩溃的组件树。...如果一个类组件定义了static getDerivedStateFromError()或者是componentDidCatch()中的任何一个(或两个),那么这个类组件就变成一个错误边界Error boundaries...(3)错误边界无法捕获下面场景中产生的错误: 事件处理 异步代码(例如 setTimeout 或 requestAnimationFrame 回调函数) 服务端渲染 错误边界仅可以捕获其子组件的错误...render()目前可返回以下几种类型: react元素 布尔值或null:什么都不渲染 数组(v16.0.0新增)和Fragments片段(v16.2.0新增):返回多个元素 字符串或数字(v16.0.0...Hooks本质就是一类特殊的js函数,可以让本来无状态的函数组件变成有状态的,在函数组件内部hook组件的state和lifecycle。 Hooks特性是可选用的,并且向后兼容。

    2.3K111

    🎉我点了页面上的元素,VSCode 乖乖打开了对应的组件?原理揭秘。

    运行时:需要在 React 组件的最外层包裹 Inspector 组件,用于在浏览器端监听快捷键,弹出 debug 的遮罩层,在点击遮罩层的时候,利用 fetch 向本机服务发送一个打开 VSCode...本地服务:需要启动 react-dev-utils 里的一个中间件,监听一个特定的路径,在本机服务端执行打开 VSCode 的指令。 下面简单分析一下这几步到底做了什么。...本地服务 还记得 create-react-app 或者 vue-cli 启动的前端项目,在错误时会弹出一个全局的遮罩和对应的堆栈信息,点击以后就会跳转到 VSCode 对应的文件么?...如何在元素上埋点 在浏览器端能找到节点在 VSCode 里的对应的路径,关键就在于编译时的埋点,webpack loader 接受代码字符串,返回你处理过后的字符串,用作在元素上增加新属性再合适不过,我们只需要利用...,在 class 组件的情况下就对应那个类,取上面的的 displayName 或 name 属性即可: export const getFiberName = (fiber?

    2.3K10

    为什么 React16 对开发人员来说是一种福音

    这里涉及到一种新的生命周期函数叫componentDidCatch(error, info)。无论什么样的类组件,只要定义了这个函数,就成为了一个错误边界。...ReactDOM.createPortal(child, container) 第一个参数 (child)是任何可渲染的 React子元素,例如元素,字符串或片段。...为什么需要使用refs: 管理焦点、文本选择或媒体播放。 触发动画。 与第三方 DOM 库集成。...需要一个函数作为子组件。这个函数接收当前上下文值,并返回一个 React 节点。传给函数的 value 参数将等于树中最近的 Provider 的 value。...如果你愿意,可以通过提取组件props的纯函数和类定义之外的状态,在getDerivedStateFromProps() 和其他类方法之间重用一些代码。

    1.4K30

    《React 面试必知必会》Day5

    当一个组件的 props 或 state 发生变化时,React 通过比较新返回的元素和之前渲染的元素来决定是否有必要进行实际的 DOM 更新。当它们不相等时,React 将更新 DOM。...每次组件渲染时,函数被调用的常见错误是什么? 你需要确保在传递函数作为参数时,没有调用该函数。...这就是为什么 React 使用 className 而不是 class 的主要原因。传递一个字符串作为 className prop。...ReactDOM.createPortal(child, container); 第一个参数是任何可渲染的 React children,比如一个元素、字符串或片段。...你可以使用函数或类来创建无状态组件。但除非你需要在你的组件中使用生命周期钩子,否则你应该选择函数组件。

    1.2K60

    React 设计模式 0x1:组件

    >; }; export default MyComponent; 或普通函数: import React from "react"; function MyComponent(props) {...# useState useState 是 React 中最常用的 hook 之一,它用于在函数式组件中存储状态值(对象、字符串、布尔值等),这些值在组件的生命周期中进行变更。...这些 React 组件需要以良好的方式进行结构化,以便于进行测试、扩展和易于发现错误。...、测试和轻松识别错误 给组件和变量合适的命名 编写合理的变量名、方法名或组件名非常重要 避免使用模糊不清的命名 保持文件夹结构精确和易于理解 文件和文件夹结构在实现良好的组件结构方面也非常重要 为项目提供文件夹结构...,以便于理解应该将哪些文件放入特定文件夹中 将可重用的逻辑移至单独的类或函数中 通常在编程中,始终记住 DRY 原则 无论您觉得应用程序或组件将使用哪些可重用的逻辑,都将其移至函数或方法中,并在应用程序中调用

    88610

    React教程:组件,Hooks和性能

    每当开发一个新的程序时,你需要为其做好在以后转换为 React 应用的新设计,首先试着确定设计草图中的组件,如何分离它们以使其更易于管理,以及哪些元素是重复的(或他们的行为)。...多亏了这一点,我们才能把 React 状态作为单一的事实来源,因此我们在屏幕上看到的与当前拥有的状态是一致的。开发人员需要传递一个函数,该函数用来响应用户与表单的交互,这将会改变它的状态。...refs 还可以做到: 使用字符串字面量(历史遗留的,应该避免), 使用在 ref 属性中设置的回调函数, 通过创建 ref 作为 React.createRef() ,并将其绑定到类属性,并通过它去访问...所以叫类组件和函数组件似乎更符合它们的实际操作,至少从16.8.0开始。...例如这个组件可能包含其他库,或更多代码,所以不只是需要一个文件 —— 它可能是绑在一起的多个文件。

    2.6K30

    点击DOM,VSCode就能自动打开对应React组件?

    运行时:需要在 React 组件的最外层包裹 Inspector 组件,用于在浏览器端监听快捷键,弹出 debug 的遮罩层,在点击遮罩层的时候,利用 fetch 向本机服务发送一个打开 VSCode...本地服务:需要启动 react-dev-utils 里的一个中间件,监听一个特定的路径,在本机服务端执行打开 VSCode 的指令。 下面简单分析一下这几步到底做了什么。...本地服务 还记得 create-react-app 或者 vue-cli 启动的前端项目,在错误时会弹出一个全局的遮罩和对应的堆栈信息,点击以后就会跳转到 VSCode 对应的文件么?...如何在元素上埋点 在浏览器端能找到节点在 VSCode 里的对应的路径,关键就在于编译时的埋点,webpack loader 接受代码字符串,返回你处理过后的字符串,用作在元素上增加新属性再合适不过,我们只需要利用...,在 class 组件的情况下就对应那个类,取上面的的 displayName 属性即可: export const getFiberName = (fiber?

    2.4K20

    React核心工作原理

    React实战视频讲解:进入学习为什么需要JSX开发效率:使用 JSX 编写模板简单快速。执行效率:JSX编译为 JavaScript 代码后进行了优化,执行更快。类型安全:在编译过程中就能发现错误。...jsx本来就是js扩展,转义过程简单直接的多;vue把template编译为render函数的过程需要复杂的编译器转换字符串-ast-js函数字符串1.2、render、Component基础核心apirenderReactDOM.render...如果提供了可选的回调函数,该回调将在组件被渲染或更新之后被执行。...}}类组件React 的组件可以定义为class 或函数的形式,如需定义class 组件,需要继承React.Component 或 React.PureComponent:class Welcome...myreact实现原生标签节点、文本节点、函数组件和类组件的初次渲染先用 Create React App 创建一个 React 项目,安装依赖并运行;接着在 src/index.js 里边加上 这段代码查看一下版本号

    95720

    详解React核心工作原理

    为什么需要JSX开发效率:使用 JSX 编写模板简单快速。执行效率:JSX编译为 JavaScript 代码后进行了优化,执行更快。类型安全:在编译过程中就能发现错误。...jsx本来就是js扩展,转义过程简单直接的多;vue把template编译为render函数的过程需要复杂的编译器转换字符串-ast-js函数字符串1.2、render、Component基础核心apirenderReactDOM.render...如果提供了可选的回调函数,该回调将在组件被渲染或更新之后被执行。...}}类组件React 的组件可以定义为class 或函数的形式,如需定义class 组件,需要继承React.Component 或 React.PureComponent:class Welcome...myreact实现原生标签节点、文本节点、函数组件和类组件的初次渲染先用 Create React App 创建一个 React 项目,安装依赖并运行;接着在 src/index.js 里边加上 这段代码查看一下版本号

    1.1K20

    React 进阶 - JSX

    代替 componentDidCatch v16.8 全新 React Hooks 支持,使函数组件也能做类组件的一切事情 v17 事件绑定由 document 变成 container,移除事件池...如果是组件类型,传入对应的类或函数 如果是 DOM 元素类型,传入 div 或 span 等字符串 props:元素属性 在组件类型中为 props 在 DOM 元素类型中为 attributes...类型 标签字符串,如 div fragment 类型 react element 类型 symbol react.fragment 类型 文本类型 字符串 无 数组类型 返回数组结构,里面的元素被 react.createElement...转换 无 组件类型 react element 类型 组件类或组件函数本身 三元运算 / 表达式 先执行三元运算,然后按上面规则转换 看三元运算结果的类型 函数执行 先执行函数,然后按上面规则转换 看函数执行结果的类型...export const ClassComponent = 1; // 类组件 export const IndeterminateComponent = 2; // 初始化的时候不知道是函数组件还是类组件

    78510

    Java 22 正式发布,一文了解全部新特性

    Unnamed Variables & Patterns - JEP 456 JEP 456 - 未命名变量和模式:当需要但未使用变量声明或嵌套模式时,提高了可读性。两者都由下划线字符表示。...价值 为开发人员提供了更大的自由来表达构造函数的行为,从而可以更自然地放置目前必须纳入辅助静态方法、辅助中间构造函数或构造函数参数中的逻辑。...保留构造函数在类实例化期间按自上而下顺序运行的现有保证,确保子类构造函数中的代码不会干扰超类实例化。 不需要对 Java 虚拟机进行任何更改。...通过有效地调用外部函数(即 JVM 外部的代码),并安全地访问外部内存(即不受 JVM 管理的内存),API 使 Java 程序能够调用本机库并处理本机数据,而不会出现脆弱性和危险。JNI。...一致性:提供在多种内存(例如本机内存、持久内存和托管堆内存)中操作无限大小的结构化和非结构化数据的方法。 健全性:保证没有释放后使用错误,即使在多个线程之间分配和释放内存时也是如此。

    1.3K10

    React 17 RC 版发布:无新特性,却有新期待!

    会把它标记为 error 而非忽略它 ; } 过去,React 仅对类和函数组件执行此操作,但不检查 forwardRef 和 memo 组件的返回值,这是由于编码错误。...在 React 17 中,forwardRef 和 memo 组件的行为与普通函数和类组件一致。它们返回 undefined 会被视为错误。...从你的角度来看是多了一个可以单击组件堆栈的新特性(因为它们依赖于本机浏览器堆栈框架),并且你可以像解码常规 JavaScript 错误那样在生产环境解码它们。...这里面构成重大变更的部分是,要使此功能正常进行,React 得在捕获错误后在堆栈中重新执行上面某些 React 函数和 React 类构造函数。...由于渲染函数和类构造函数不应该有 effect (这对于服务端渲染也很重要),因此这不会造成任何实际问题。

    2.4K20
    领券