标签:面试

416 篇文章

八股文12-16
阅读

[] == ! [] 为什么返回 true

关键词 :js 隐式转换 这个问题涉及到 JavaScript 中的类型转换和比较操作的规则。 在 JavaScript 中, 的比较过程如下: 1. !\[\]的计算 是逻辑非操作符,它会首先将右侧的操作数转换为布尔值,然后反转该布尔值。对于空数组 ,在 JavaScript 中,所有对象(包括数组)在布尔上下文中都被认为是 。因此, 首先将 转换为 ,然后取反,变成 。 2. 比较 与 根据 ECMAScript 规范,在进行抽象等...

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

JS 如何计算一段文本渲染之后的长度

关键词 :计算文本长度 追加描述 需要根据这个长度来动态计算文本是否折叠, 所以这个文本没有计算出长度是否折叠之前,还不能在用户可视区域渲染出来 要在 JavaScript 中计算一段文本渲染之后的长度,可以通过几种方法来实现。这里的“长度”可以是文本渲染后的像素宽度,它取决于具体的字体、字号、文本内容等因素。以下是一些可行的方法: 1\. 创建一个临时元素来计算文本尺寸 这个方法涉及到创建一个与目标文本拥有相同样式(字体、字号等)的临...

#面试
八股文12-16
阅读

JS 数据类型里面, Set 和 数组分别有哪些适用场景,开发中该如何抉择

关键词 :Set 和 数组 适用场景 在 JavaScript 中, 和数组( )都是用来存储一系列数据的集合,但它们具有不同的特性和适用场景。了解这些差异可以帮助你在特定情况下做出更合适的选择。 Set 特性 : 是一种新的数据结构,被引入在 ES6 中。 它类似于数组,但是成员的值都是唯一的,没有重复的值。 提供了简单的方法来进行添加( )、删除( )、检查( )成员,以及获取集合大小( )。 不支持索引访问(例如, 是不可能的),...

#面试
八股文12-16
阅读

js 数据类型里面,Map 和 object 分别有哪些适用场景,开发中该如何抉择

在 JavaScript 中, 和普通的对象( )都可以用作键值对的集合,但它们各自的特性和使用场景有所不同。根据这些特性和场景,你可以选择最适合你需求的数据结构。 Object 特性 : 键(key)必须是字符串或符号( )。 适合少量和简单数据结构的场景,以及当你知道键集合不会经常变化时。 对象字面量语法简洁,易于创建和操作。 部分现代 JavaScript 引擎对对象进行了优化,在访问已知键和枚举属性时表现良好。 适用场景 : 当...

#面试
八股文12-16
阅读

JS 脚本延迟加载的方式有哪些

关键词 :JS 延迟加载、JS 异步加载 JavaScript 脚本的延迟加载是一种优化网页加载时间的技术,可以提高页面的加载速度,提升用户体验。以下是常见的几种 JS 脚本延迟加载的方式: 1\. 使用 标签的 属性 在 标签中使用 属性可以使得脚本在文档解析完成后,但在 事件触发之前执行。 属性仅适用于外部脚本。 2\. 使用 标签的 属性 与 类似, 属性使得脚本在加载时不会阻塞 HTML 文档的解析,但它与 的区别在于,脚本一旦...

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

proxy能够监听到对象中的对象的引用吗

关键词 :proxy 监听引用 是的, 能够监听到对象属性的读取和设置操作,包括对象中嵌套的对象的引用操作。但是,要注意的是,如果你想要监听一个嵌套对象内部的变化(例如,对象的属性或者数组的元素),那么你需要单独为这个嵌套对象也创建一个 实例。因为 只能直接监听它直接代理的对象的操作,对于嵌套对象的操作,需要嵌套地使用 来实现深度监听。 举个例子: 在这个例子中, 函数使用了递归,为对象及其所有嵌套对象创建了 代理。因此,修改嵌套对象...

#面试
八股文12-16
阅读

在 forEach 中和 for 循环 中调用异步函数的区别

关键词 :循环中的异步 在 JavaScript 中,处理异步函数时, 循环和 方法之间的行为有显著差异,尤其是当你试图在循环体中使用 时。理解这些差异对于编写正确且高效的异步代码是很重要的。 使用 调用异步函数 方法用于对数组的每个元素执行一次提供的函数,但它不会等待异步操作完成。换句话说,即便是在 循环里使用了 函数,这个 函数依旧会立即执行,但 不会等待它完成。 上面的代码中, 会对数组中的每个元素立即开始执行,但 不会等待它们完...

#面试
八股文12-16
阅读

在创建对象的时候, new class 和 new function 可有什么区别

关键词 :创建对象实例 在 JavaScript 中,使用 操作符创建对象时,既可以使用类( )也可以使用构造函数( )。二者都可以用来实例化新的对象,但它们之间存在一些关键的区别和相似之处: 使用 操作符 当使用 操作符时,JavaScript 会执行以下步骤: 1. 创建一个全新的空对象。 2. 将这个空对象的原型( )设置为构造函数的 属性。 3. 将 绑定到新创建的对象上,以便构造函数可以引用它。 4. 执行构造函数内的代码(对...

#面试
八股文12-16
阅读

实现一个函数,支持深度遍历 JS 对象,且允许再遍历的时候,修改对象的数据,得到新的对象

关键词 :深度遍历对象 实现一个这样的函数,我们需要考虑几个关键点: 1. 深度遍历 :使用递归遍历对象的所有层级。 2. 修改数据 :在遍历过程中允许修改对象的数据。 3. 返回新对象 :保持原对象不变,对每个属性或值进行操作,将修改后的结果存储在新的对象中返回。 以下是一个简单示例,展示了如何实现上述功能: 在这个例子中: 函数通过递归遍历接受两个参数:要遍历的对象和一个修改函数( ),这个修改函数对每个遇到的值进行操作。 如果当前...

#面试
1...232425...47