千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:济南千锋IT培训  >  技术干货  >  JS中objectarraymapset等底层数据结构是什么?

JS中objectarraymapset等底层数据结构是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-14 13:53:50

一、JS中objectarraymapset等底层数据结构是什么

1、object——对象

Object 是 JavaScript 的一种数据类型。它用于存储各种键值集合和更复杂的实体。Objects 可以通过 Object() 构造函数或者使用对象字面量的方式创建。

在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype 继承属性和方法,虽然大部分属性都会被覆盖(shadowed)或者说被重写了(overridden)。 除此之外,Object 还可以被故意的创建,但是这个对象并不是一个“真正的对象”(例如:通过 Object.create(null)),或者通过一些手段改变对象,使其不再是一个“真正的对象”(比如说:Object.setPrototypeOf)。

通过原型链,所有的 object 都能观察到 Object 原型对象(Object prototype object)的改变,除非这些受到改变影响的属性和方法沿着原型链被进一步的重写。尽管有潜在的危险,但这为覆盖或扩展对象的行为提供了一个非常强大的机制。

Object 构造函数为给定的参数创建一个包装类对象(object wrapper),具体有以下情况:

如果给定值是 null 或 undefined,将会创建并返回一个空对象如果传进去的是一个基本类型的值,则会构造其包装类型的对象如果传进去的是引用类型的值,仍然会返回这个值,经他们复制的变量保有和源对象相同的引用地址

当以非构造函数形式被调用时,Object 的行为等同于 new Object()。

2、array——数组

与其他编程语言中的数组一样,Array 对象支持在单个变量名下存储多个元素,并具有执行常见数组操作的成员。

在 JavaScript 中,数组不是基本类型,而是具有以下核心特征的 Array 对象:

JavaScript 数组是可调整大小的,并且可以包含不同的数据类型。(当不需要这些特征时,可以使用类型化数组。)JavaScript 数组不是关联数组,因此,不能使用任意字符串作为索引访问数组元素,但必须使用非负整数(或它们各自的字符串形式)作为索引访问。JavaScript 数组的索引从 0 开始:数组的名列前茅个元素在索引 0 处,第二个在索引 1 处,以此类推,最后一个元素是数组的 length 属性减去 1 的值。JavaScript 数组复制操作创建浅拷贝。(所有 JavaScript 对象的标准内置复制操作都会创建浅拷贝,而不是深拷贝)。

3、map——地图

Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者基本类型)都可以作为一个键或一个值。

Map 对象是键值对的集合。Map 中的一个键只能出现一次;它在 Map 的集合中是独一无二的。Map 对象按键值对迭代——一个 for…of 循环在每次迭代后会返回一个形式为 [key,value] 的数组。迭代按插入顺序进行,即键值对按 set() 方法首次插入到集合中的顺序(也就是说,当调用 set() 时,map 中没有具有相同值的键)进行迭代。

规范要求 map 实现“平均访问时间与集合中的元素数量呈次线性关系”。因此,它可以在内部表示为哈希表(使用 O(1) 查找)、搜索树(使用 O(log(N)) 查找)或任何其他数据结构,只要复杂度小于 O(N)。

4、set——集合

Set 对象允许你存储任何类型的少数值,无论是原始值或者是对象引用。

Set 对象是值的集合,你可以按照插入的顺序迭代它的元素。Set 中的元素只会出现一次,即 Set 中的元素是少数的。

5、其他

除了object、array、map、set,JavaScript 的底层数据结构还包括:

基本数据类型:Undefined、Null、Boolean、Number、String、Symbol和 BigInt。WeakMap 和 WeakSet :WeakMap 和 WeakSet 是一些与 Map 和 Set 对象相似的集合类型,但是它们中的键或值只能是弱引用,当没有访问者或引用时,垃圾回收器将自动回收这些对象所占有的内存。其他数据结构类型:队列、堆、栈等。

二、JavaScript编程语言

1、简介

JavaScript 编程语言允许你在 Web 页面上实现复杂的功能。如果你看到一个网页不仅仅显示静态的信息,而是显示依时间更新的内容,或者交互式地图,或者 2D/3D 动画图像,或者滚动的视频播放器,等等——你基本可以确定,这需要 JavaScript 的参与。

JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。JavaScript 怎能缺席。它是标准 Web 技术蛋糕的第三层:

HTML:是一种标记语言,用来结构化我们的网页内容并赋予内容含义,例如定义段落、标题和数据表,或在页面中嵌入图片和视频。CSS:是一种样式规则语言,可将样式应用于 HTML 内容,例如设置背景颜色和字体,在多个列中布局内容。JavaScript:是一种脚本语言,可以用来创建动态更新的内容,控制多媒体,制作图像动画,还有很多。(好吧,虽然它不是使用广泛的,但可以通过简短的代码来实现神奇的功能。)

这三层依次建立,秩序井然。

2、作用

客户端(client-side)JavaScript 语言的核心包含一些普遍的编程特性,以让你可以做到如下的事情:

在变量中储存有用的值:比如我们请求客户输入一个新名字,然后将其储存到 name 变量中。操作一段文本(在编程中称为“字符串”(string)):我们取字符串 “玩家 1:”,然后把它和 name 变量连结起来,创造出完整的文本标签,比如:”玩家 1:小明”。运行代码以响应网页中发生的特定事件:我们用一个 click 事件来检测按钮什么时候被点击,然后运行代码更新文本标签。

延伸阅读1:JavaScript的优势

不需要编译器,因为web浏览器使用HTML解释它;比其他编程语言更容易学习;错误更容易发现,因此更容易纠正;可以分配给特定的网页元素或特定的事件,如单击或鼠标悬停;可以跨多个浏览器、平台等工作;可以使用JavaScript验证输入并减少手动数据检查的需要;使网站更具互动性,吸引访问者的注意力;比其他编程语言更快、更轻量级。
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

SOA与微服务有哪些区别?

2023-10-14

敏捷开发优点和缺点?

2023-10-14

什么是优异二分搜索树(MBST)?

2023-10-14

最新文章NEW

web前端跟j2ee区别?

2023-10-14

如何选择理想的CRM软件?

2023-10-14

为什么数组索引数据那么快速、有效?

2023-10-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>