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

详解NodeList 和 HTMLCollection 和 Array

用一遍就知道: entries(): 调用entries方法会返回一个iterator(迭代器),关于iterator/iterable可以参见MDN,简单点说就是返回了一个可以遍历的对象,而这个对象实现了...MDN上是这么介绍HTMLCollection的: Note: This interface is called HTMLCollection for historical reasons (before...只包含了子div,也验证了MDN上的说法。 至于parent即有childNodes属性,又有children属性呢?...至此,我们对NodeList和HTMLCollection应该有一个比较全面的认识,总结一下就是HTMLCollection是比较早期的模型,只能包含HTML元素,早期就有的接口如document.getElementsByClassName...比较新的接口如document.querySelectorAll返回的就是NodeList。

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

    DOM中历史遗留的那些天坑 ...

    ---- >>> 首先,参考stack overflow上的回答 我翻译了一下Vote数最高的答案: HTMLCollection与NodeList都是DOM节点的集合,两者都属于Collections...当返回多个节点(如:getElementByTagName)或者得到所有子元素(如:element.childNodes)时,Collections就会出现,这时候就有可能返回HTMLCollection...或者NodeList ---- >>> 其次参考W3的文档(MDN上也有详细解释): HTMLCollection是以节点为元素的列表,可以凭借索引、节点名称、节点属性来对独立的节点进行访问。...,那么现在就要进入第二个问题,为什么两个Element属性返回的结果(如:textContent)不一样呢?...都是实时变动的(live),document上的更改会反映到相关对象上(例外:document.querySelectorAll返回的NodeList不是实时的) HTMLCollection和NodeList

    98560

    《JavaScript 高级程序设计》阅读笔记 1:最佳实践

    可读性(缩进、注释); 变量和函数命名(有意义的命名); 变量类型透明(var a =null var a = iSpeed) 松散耦合: HTML 或者 CSS 与 JavaScript 的解耦(如...属性查找涉及原型链的追溯,花费时间长 优化循环:减值迭代、简化终止条件、简化循环体、使用 do...while...、展开循环 使用数组字面量和对象字面量 最小化现场更新。...innnerHTML 比普通的创建 dom 节点的方法更快 同胞节点有相同的事件时利用事件委托冒泡给父节点,父节点的事件监听器里结合 switch 进行 event.target 判断 访问 HTMLCollection...的属性或者方法时,都是在文档上进行查询,这个过程会有性能开销,应该最小化访问 HTMLCollection 的次数。

    45810

    Chrome浏览器63版测试版新特性

    ); }) .catch(error => { / _错误处理_ / }); }); 上面这段代码就是一个例子,演示了使用 import(specifier)函数时,如何在某个事件发生后导入...异步迭代器和生成器(Async iterators and generators) 使用异步函数时,不管做什么类型的迭代处理,代码写出来都可能有点不美观。...异步迭代器可以用在循环语句中,也可以通过异步迭代器工厂创建自定义异步迭代器。...Blink渲染引擎 > 字体 新版本支持东亚语言字体及变体(font-variant-east-asian),让开发人员能控制交替字形的运用(alternate glyphs),以此显示如日语和中文等东亚语言...Blink > DOM 为了增强与其它部分之间的互用性,HTMLAllCollection,HTMLCollection,HTMLFormControlsCollection和HTMLOptionsCollection

    1.7K50

    TypeScript基础常用知识点总结

    TypeScript—类型声明文件 本篇是我对TS的一些总结,TypeScript虽然和JavaScript语法类似,但他们之间在使用细节上还是有很大的不同的,写本篇目的是便于自己以后查阅和复习。...TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。也就是说,写是TS写,但最终编译出来还是JS。...事实上常用的类数组都有自己的接口定义,如 IArguments, NodeList, HTMLCollection 等: function sum() { let args: IArguments...TypeScript 的命名空间可以将代码包裹起来,只对外暴露这个命名空间对象,通过 export 关键字将命名空间内的变量挂载到命名空间对象上。...通常我们会把声明语句放到一个单独的文件(如jQuery.d.ts)中,这就是声明文件,声明文件必需以 .d.ts 为后缀。

    4.9K30

    【资讯】TypeScript 官网新主页上线!

    据悉,早在 2020 年 8 月份,TypeScript 团队就对 TypeScript Web 现有整个构架进行了重新设计。...重新设计了之前的所有内容后, TypeScript 对文档进行了迭代,并在今年 3 月份发布了手册的第二个版本。现在官方一直在关注新用户对于 TypeScript 新主页的反馈。...TypeScript 的新主页主要是介绍 TypeScript 语言相关,然后解释使用该语言的价值主张。...用户一部分想在浏览器中尝试 TypeScript 语言,另一部分则想学习如何在本地计算机上运行。...创建一个中途跳转点(如果用户对 TypeScript 了解得足够多,可跳转三个地方:文档、在编辑器中“冲浪”或学习如何在计算机上运行。

    1.1K20

    分享 30 道 TypeScript 相关面的面试题

    随着技术格局的不断发展,对 TypeScript 开发人员的需求也在不断增加,技能要求也有所提升,但如何在面试中让自己脱颖而出呢?...15、如何在 TypeScript 中声明只读数组,以及为什么要使用它?...22、什么是映射类型,以及如何在 TypeScript 中使用它们? 答案:映射类型允许通过转换属性在现有类型的基础上创建新类型。它们遵循一种模式,您可以在其中迭代对象类型的属性并生成新类型。...23、您将如何在 TypeScript 中创建和使用 mixin? 答案:Mixin 是一种从可重用组件创建类的模式。...答:TypeScript 的类型推断是指编译器在没有显式类型注释的情况下自动推断和分配类型的能力。虽然鼓励显式类型,但编译器会尽可能使用上下文(如变量初始化、返回语句等)来推断类型。

    1K30

    深入理解 TypeScript 中的 Keyof 运算符,让你的代码更安全、更灵活!

    索引基类型查询从属性及其相关元素(如默认关键字及其数据类型)中获取值和属性。 一、如何定义 KeyOf 运算符 在 TypeScript 中,keyof 运算符用于获取用户定义的值。...映射类型基于索引签名,通过迭代键来定义尚未声明的属性类型。...中,当我们在具有显式键的对象类型上使用 keyof 运算符时,它会创建一个联合类型。...通过使用 TypeScript 的实用类型,如 Record 和 Pick,我们可以轻松地重构和简化类型定义。结合 keyof 运算符,我们可以确保类型的灵活性和安全性。...在本文中,我们探讨了如何在 TypeScript 泛型、映射类型、显式键、索引签名、条件映射类型和实用类型中使用 keyof 运算符。

    24010

    TypeScript 初学者入门学习笔记(一)

    基于原型的面向对象编程,使得原型上的属性或方法可以在运行时被修改。 TypeScript 的类型系统,在很大程度上弥补了 JavaScript 的缺点。 为什么使用 TypeScript?...TS 只会在编译时对类型进行静态检查,如发现有错误,编译时就会报错。而在运行时,与普通的 JavaScript 文件一样,不会对类型进行检查。...这样的类型系统体现了 TypeScript 的核心设计理念:在完整保留 JavaScript 运行时行为的基础上,通过引入静态类型系统来提高代码的可维护性,减少可能出现的 bug。...,如 IArguments, NodeList, HTMLCollection 等: function sum() { let args: IArguments = arguments; }...//其中 IArguments 是 TypeScript 中定义好了的类型,它实际上就是: interface IArguments { [index: number]: any; length

    1.8K20

    如何在 TypeScript 中使用函数

    要在 macOS 或 Ubuntu 18.04 上安装,请按照如何在 macOS 上安装 Node.js 和创建本地开发环境或如何在 Ubuntu 18.04 上安装 Node.js 的使用 PPA 安装部分中的步骤进行操作...此外,我们需要在机器上安装 TypeScript 编译器 (tsc)。为此,请参阅官方 TypeScript 网站。...如果不想在本地机器上创建 TypeScript 环境,可以使用官方的 TypeScript Playground 来跟随。...在本节中,我们将学习如何在 TypeScript 中将函数参数标记为可选。 要将函数参数转换为可选参数,请添加 ? 参数名称后面的修饰符。...结论 函数是 TypeScript 中应用程序的构建块,在本教程中,我们学习了如何在 TypeScript 中构建类型安全的函数,以及如何利用函数重载来更好地记录单个函数的所有变体。

    15K10

    Web前端面试敲重点知识,14个TypeScript核心基础面试题和答案

    开发的,事实上我们使用TS开发项目更易于维护。...6、TypeScript 中声明变量有哪些不同的关键字? 7、如何书写带有类型注释的函数 ? 8、如何在 TypeScript 中创建对象 ? 9、如何在 TypeScript 中指定可选属性 ?...string:表示文本值,例如“javascript”、“typescript”等 number:表示数值,如 1、2、25、36 等 boolean:表示一个变量,它可以具有“真”或“假”值 image.png...image.png 8、如何在 TypeScript 中创建对象 ? 对象是类似字典的keys和values的集合,key 必须是唯一的。...它们类似于数组,有时也称为关联数组 但是,数组使用数字来索引值,而对象允许使用任何其他类型作为键 image.png 9、如何在 TypeScript 中指定可选属性 ? 通过添加 ?

    11.5K10

    一定要写单元测试!为了早点下班!

    基于 AI 构建工具应用,面临的核心难题是:如何在非确定性模型上构建表现稳定的工具。其解决策略与此相同——将复杂任务拆解为易控的小任务,并为每一步提供可靠的验证机制。...在实际项目中,单测更常见于服务端开发中,主要原因有以下两点: 运行整个应用验证的成本更高:服务端通常依赖外部资源,如 RPC 调用、数据库、缓存等。...5.2 TypeScript 中推荐的测试框架:Vitest Vitest 是一个适合 TypeScript 项目的测试框架,提供了即开即用的体验,尤其是在“单测冷启动”问题上优势明显: 1、支持直接在源码文件写测试...当编写单测不再是一种负担,而是一种自发行为时,项目迭代将进入正向循环:持续的效率和质量提升; 特别是在 AI 辅助编程的背景下,迭代速度大幅加快,正反馈的作用更为突出。...通过单测保障每一步的正确性,开发者不仅能够驾驭复杂任务,还能进一步释放生产力,实现真正的快速迭代和高质量交付。 -End- 原创作者|付志远

    28911
    领券