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

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

ruisui883个月前 (02-03)技术分析16

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模块化语法” 的相关文章

vue中如何在自定义组件上使用v-model和.sync

自定义事件tips推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到)changeData ×change-data √自定义组件的v-model用法:父组件定义数据源(不需要定义修改数据的方法),在子组件标签上通过v-model="data...

「干货」通俗易懂的Deno 入门教程

作者: semlinker转发链接:https://mp.weixin.qq.com/s/2eqRTsf_z7Bcs6dziXe73Q一、Deno 简介Deno 是一个 JavaScript/TypeScript 的运行时,默认使用安全环境执行代码,有着卓越的开发体验。Deno 含有以下功能亮点:默...

Git 分支管理策略与工作流程

(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。看完这篇文章后,涉及GIT的工作中就会减少因为规范问题导致工作出错,当然如果你现在暂时还未有合...

git的几种分支模式

编写代码,是软件开发交付过程的起点,发布上线,是开发工作完成的终点。代码分支模式贯穿了开发、集成和发布的整个过程,是工程师们最亲切的小伙伴。那如何根据自身的业务特点和团队规模来选择适合的分支模式呢?本文分享几种主流 Git 分支模式的流程及特点,并给出选择建议。分支的目的是隔离,但多一个分支也意味着...

Gitlab 的使用和代码审查流程介绍

1、先简洁介绍下项目常用的信息-面板统计页面2、用户信息面板3、服务器信息4、项目信息5、重点介绍代码提交审核机制和授权合并机制开发人员推送代码的时候不能直接推送到master,否则就会报错。此时开发人员要本地新建分支然后在提交上来列出修改了哪些细节管理员可以管理这些分支合并到master6、指派合...

Python 幕后:Python导入import的工作原理

更多互联网精彩资讯、工作效率提升关注【飞鱼在浪屿】(日更新)Python 最容易被误解的方面其中之一是import。Python 导入系统不仅看起来很复杂。因此,即使文档非常好,它也不能让您全面了解正在发生的事情。唯一方法是研究 Python 执行 import 语句时幕后发生的事情。注意:在这篇文...