当前位置:首页 > 技术分析 > 正文内容

JavaScript全解析——Map和Set数据结构和ES6模块化语法

ruisui885个月前 (02-03)技术分析36

Map和Set数据结构

●ES6 新增的两种数据结构
●共同的特点: 不接受重复数据
Set数据结构
●是一个 类似于 数组的数据结构
●按照索引排列的数据结构
创建 Set 数据结构
语法: var s = new Set([ 数据1, 数据2, 数据3, ... ])

Set 数据结构的属性和方法
●size 属性
○语法: 数据结构.size
○得到: 该数据结构内有多少个数据
●add() 方法
○语法: 数据结构.add(数据)
○作用: 向该数据结构内添加数据
●has() 方法
○语法: 数据结构.has(数据)
○返回值: 一个布尔值
■true, 表示该数据结构内有该数据
■false, 表示该数据结构内没有该数据
●delete() 方法
○语法: 数据结构.delete(数据)
○作用: 删除该数据结构内的某一个数据
●clear() 方法
○语法: 数据结构.clear()
○作用: 清除该数据结构内所有数据
●forEach() 方法
○语法: 数据结构.forEach(function (value, key, origin) {})

// 创建 Set 数据结构
var s = new Set([ 100, 200, 300 ])
console.log(s)
// Set 的属性和方法
// 1. size
console.log(s.size)
// 2. add()
var o = { name: 'Jack' }
s.add({ name: 'Jack' })
s.add(o)
console.log(s)
// 3. has()
console.log(s.has(200))
console.log(s.has(o))
// 4. delete()
s.delete(300)
s.delete(o)
console.log(s)
// 5. clear()
s.clear()
console.log(s)
// 6. forEach()
s.forEach(function (item, value, origin) {
  console.log('我执行了', item, value, origin)
})

Map数据结构
●是一个类似于对象的数据结构, 但是他的 key 可以是任何数据类型
●可以被叫做一个 值=值 的数据结构
创建一个 Map 数据结构
语法: var m = new Map([ [ key, value ], [ key, value ] ])

Map 数据结构的属性和方法
●size 属性
○语法: 数据结构.size
○得到: 该数据结构内有多少个数据
●set() 方法
○语法: 数据结构.set(key, value)
○作用: 向该数据结构内添加数据
●get() 方法
○语法: 数据结构.get(key)
○返回值: 数据结构内该 key 对应的 value
●has() 方法
○语法: 数据结构.has(key)
○返回值: 一个布尔值
■true, 该数据结构内有该数据
■false, 该数据结构内没有该数据
●delete() 方法
○语法: 数据结构.delete(key)
○作用: 删除该数据结构内的某一个数据
●clear() 方法
○语法: 数据结构.clear()
○作用: 清除该数据结构内所有数据
●forEach() 方法
○语法: 数据结构.forEach(function (value, key, origin) {})

// 创建 Map 数据结构
var m = new Map([ ['a', 100], [ { name: 'Jack' }, { name: 'Rose' } ] ])
console.log(m)
// 属性和方法
// 1. size
console.log(m.size)
// 2. set 方法
m.set('b', 200)
var a = [ 100 ]
m.set(a, [ 200 ])
console.log(m)
// 3. get 方法
console.log(m.get('b'))
console.log(m.get(a))
// 4. has 方法
console.log(m.has('b'))
console.log(m.has({ name: 'Jack' }))
// 5. delete 方法
m.delete(a)
console.log(m)
// 6. clear()
m.clear()
console.log(m)
// 7. forEach()
m.forEach(function (value, key, origin) {
  console.log(value, key, origin)
})

ES6模块化语法

开发的历史演变
●最早: 一个 js 文件
○每一个 html 文件对应一个 js 文件
●后来: 把一个项目内部的重复功能提取出来
○写成一个单独的 js 文件
●再后来:
○决定按照功能拆分出一个一个的文件
○a.js : 专门做顶部导航栏各种功能
○b.js : 专门做二级菜单
○c.js : 专门做搜索引擎
○d.js : 左侧边栏
○e.js : 轮播图
●最后在每一个 页面 准备有一个整合的 js 文件
●在页面中引入js文件的时候一定要在script表桥中添加一个type = module属性
○就是专门用来组合这个页面使用了多少个 js 文件模块
○此时, 我们管每一个 js 文件叫做一个 模块
○页面的完整功能, 就是由一个一个的模块来完成的
○这就叫做 模块化 开发
●学到这里大家应该知道,一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块

模块化开发的规则


●如果你想使用 ES6 的模块化开发语法
○页面必须在服务器上打开。本地打开不行
○vscode 下载插件, live server
○打开页面的时候, 鼠标右键 open with live server*
●当你使用了 模块化语法以后
○每一个 js 文件, 都是一个独立的 文件作用域
○该文件内的所有变量和方法, 都只能在这个文件内使用
○其他文件不能使用
○如果像使用, 需要导出
●每一个 js 文件, 也不能使用任何其他 js 文件内部的变量
○如果像使用,那么你需要导入该文件

语法: 导出和导入
●导出语法:
○export default { 你要导出的内容 }
●导入语法:
○import 变量 from 'js文件路径

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/701.html

分享给朋友:

“JavaScript全解析——Map和Set数据结构和ES6模块化语法” 的相关文章

Deepin Linux正式引入AI功能,成为第一个正式加入AI潮流的Linux发行版

Deepin Linux是一个基于Debian的Linux发行版,以美观和实用性而闻名。现在为了达到人工智能发展趋势的前沿,Deepin Linux的开发人员宣布,他们已经开始将AI功能集成到桌面环境及其随附的应用程序中。AI集成包含了两种风格——AI驱动的图像编辑插件和AI编码助手。其中图像编辑插...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

Solid State Logic 发布低保真数字失真插件 Digicrush

Solid State Logic 宣布推出低保真数字失真插件 Digicrush ,他们最新的创意工具具有经典数字失真的粗糙、低保真特性,完美模拟早期数字音频的衰减和伪影。Digicrush 充满怀旧气息,深受经典数字采样器和效果器的影响,具有内置抖动、可调比特深度和采样率降低功能,是为音轨添加复...

数组、去重、排序、合并、过滤、删除

ES6数字去重 Array.from(new Set([1,2,3,3,4,4])) //[1,2,3,4] [...new Set([1,2,3,3,4,4])] //[1,2,3,4]2、ES6数字排序 [1,2,3,4].sort(); // [1, 2,3,4],默认是升序...

vue-router是如何解析query参数呢? #前端

vue-router 中的 query 解析。1. 大家好,我是龙仔。今天来分享 vue-router 是如何解析快乐参数的,因为使用 vue 路由会传 query 参数和快乐参数,所以从 vue 的角度来看如何解析传递的快乐参数。2. 基础知识大家应知道,快乐参数结构如:a、b、c、a、b、c、a...