标签:面试

416 篇文章

八股文12-16
阅读

对象的遍历方式有哪些

关键词 :对象遍历方式 遍历 JavaScript 对象的属性可以使用几种不同的方法,每种方法都有其适用场景和特点。以下是一些常用的遍历对象属性的方法: 1\. for in 循环 循环可以遍历一个对象的所有 可枚举属性 ,包括其原型链上的属性。 使用 方法检查属性是否是对象本身的属性(而不是继承的属性)是一个好习惯。 2\. Object.keys() 方法返回一个包含对象自身所有可枚举属性名称的数组。 3\. Object.valu...

#面试
八股文12-16
阅读

数组里面有 10 万个数据,取第一个元素和第 10 万个元素的时间相差多少

关键词 :数组访问 在 JavaScript 中,从数组中获取第一个元素和获取最后一个元素(假设这里你说的第 10 万个元素相当于数组的最后一个元素)的时间差异通常非常小,几乎可以忽略不计。 数组在内存中通常是连续存储的,访问数组中的元素可以通过索引快速定位。无论是访问第一个元素还是最后一个元素,时间复杂度都是 O(1),即可以在常数时间内完成。 然而,在实际情况中,可能会有一些微小的差异,这取决于以下因素: 1. 数组的存储方式和实现...

#面试
八股文12-16
阅读

理解JS中的深比较跟浅比较

<span style="color: var( g textcolor);" 在理解浅比较跟深比较之前,我们需要先回顾一下</span <span style="color: var( g textcolor);" 和</span <span style="color: var( g textcolor);" 的区别</span 和 的区别 代表 相同 ; 代表 严格相同 先检查两个操作数据的类型,如果类型相同,就会 比较;如果不相同...

#学习#面试
八股文12-16
阅读

防止对象被篡改有哪些方式

关键词 :防止对象篡改 在 JavaScript 中,可以通过以下几种方式防止对象被篡改: 一、使用 1. 功能: 完全冻结一个对象,使其不能添加新属性、删除现有属性或修改现有属性的值。 对嵌套对象也会进行深度冻结。 2. 示例: 二、使用 1. 功能: 密封一个对象,阻止添加新属性和删除现有属性,但可以修改现有属性的值。 对嵌套对象不进行深度密封。 2. 示例: 三、使用 声明对象引用 1. 功能: 使用 声明的变量不能被重新赋值,但...

#学习#面试
八股文12-07
阅读

Object.defineProperty 是否可以监听拦截数组变化

关键词 :Object.defineProperty 监听数组变化 1. 基本原理与部分可行性 可以用于监听和拦截数组的某些变化,但不是原生地对所有数组操作都能很好地监听。 数组在 JavaScript 中是特殊的对象,其索引可以看作是对象属性。理论上,我们可以使用 为数组的每个索引(属性)定义属性描述符,以此来尝试监听数组元素的读取和设置操作。 例如,对于一个简单的数组元素设置操作,可以这样定义: 当通过 读取或设置元素时,相应的 和...

#面试
八股文12-07
阅读

Object.is 与全等运算符(===)有何区别

关键词 :等值判断 与全等运算符( )都用于比较两个值是否相等,但它们之间存在一些区别: 一、对特殊值的处理 1. 的比较: 认为 不等于任何值,包括它自身。 认为 只等于 。 例如: 2. 和 的比较: 认为 和 是相等的。 可以区分 和 。 例如: 二、一般值的比较 1. 对于其他值的比较, 和 的行为类似: 比较两个数字、字符串、布尔值、对象等,如果它们的值和类型都相同,则认为它们相等。 例如:

#面试
八股文12-07
阅读

Object.keys与Object.getOwnPropertyNames有何区别

和 都是用于获取对象自身属性名的方法,但它们之间存在一些区别: 一、返回值类型 1. : 返回一个由对象自身可枚举属性名组成的数组。 可枚举属性是指那些可以通过 循环遍历到的属性。 2. : 返回一个由对象自身所有属性名组成的数组,无论属性是否可枚举。 二、可枚举性处理 1. : 只返回可枚举属性的名称。如果一个属性被设置为不可枚举,它将不会出现在 的返回结果中。 例如,使用 定义的不可枚举属性不会被包含在 的结果中。 2. : 返回所...

#面试
八股文12-07
阅读

proxy 可以拦截数组变化吗

关键词 :proxy set 拦截器 1. 可以拦截数组变化 可以有效地拦截数组的变化。当对数组进行各种操作,如修改元素、添加或删除元素等, 都能够捕获这些操作并进行拦截。 2. 拦截数组的读取和设置操作 对于数组元素的读取和设置操作,可以通过 和 拦截器来实现。 拦截器示例 : 假设我们要拦截对数组元素的读取操作,以记录哪些元素被访问了。 在这个例子中,当通过 读取数组元素时, 拦截器会被触发。它会先打印出 ,然后返回数组中索引为 的...

#面试
八股文12-07
阅读

Reflect.get() 和直接通过对象 [.] 访问获取属性, 有何区别

关键词 :Reflect 函数 和直接通过对象 访问获取属性有以下一些区别: 一、返回值 1. : 如果属性不存在,返回 。 例如: 2. 对象直接访问: 如果属性不存在,在非严格模式下返回 ;在严格模式下,会抛出一个 错误。 例如: 二、可接受的参数和功能扩展 1. : 可以接受第三个参数 ,用于指定属性访问的上下文对象,这在某些情况下非常有用,比如在使用代理时可以控制属性访问的行为。 例如: 2. 对象直接访问: 没有类似的参数来指...

#面试
1...242526...47