当前位置: 首页 > news >正文

网站开发培训什么必应搜索引擎入口官网

网站开发培训什么,必应搜索引擎入口官网,网站建设的功能和目标,门户网站做免费相亲的1.Map是什么? ES6 提供的另一种新的引用类型的数据结构 它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键) 以前引用类型中的对象也是键值对…

1.Map是什么?

ES6 提供的另一种新的引用类型的数据结构 它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键)

以前引用类型中的对象也是键值对的集合 但是键限于字符串

总结起来就是:

  • Object 结构提供了“字符串—值”的对应,
  • Map 结构提供了“值—值”的对应,是一种更完善的 “键值对” 结构实现。
  • 如果你需要“键值对”的数据结构,Map 比 Object 更合适
  • 对象作为键,会隐式的调用toString()方法,从而导致后一个覆盖前一个键
  • 接受数组作为参数,该数组必须表示键值对的数组
  • Map传址,所以对象作为键名时传输的是地址,相同{},{}形式最为键,值不相等
  • Map接受数组作为参数的本质是通过forEach()循环,然后循环体内使用解构赋值items.forEach(([key, value],index) => map.set(key,value))
  • Map自带方法keys(),values(),entries(),forEach()等
  • Map参数的扩展:只要是具有 Iterator 接口且成员为键值对都可以作为Map的参数

2.怎么声明Map数据结构及Map的方法:set(), get(), has(), delete()

        const m = new Map();const o = { p: 'Hello World' };m.set(o, 'content')console.log( m.get(o) ); //"content"console.log( m.has(o) );// trueconsole.log( m.delete(o) );// trueconsole.log( m.has(o) );// false

3.证明是引用类型数据 instanceof 、Object.prototype.toString().call()

为什么instanceof可以判断对象或数组?

https://blog.csdn.net/qq_34569497/article/details/133889333

let res = map instanceof Map
let resMap = Object.prototype.toString.call(map)
console.log(res); // true
console.log(resMap); // [object Map]

4.Map和对象的区别:对象作为键,会隐式的调用toString()方法,从而导致后一个覆盖前一个键

对象作为键,会隐式的调用toString()方法,从而导致后一个覆盖前一个键

        let o1 = { a: 1 }let o2 = { b: 1 }let o3 = {}o3[o1] = 1o3[o2] = 2console.log(o3) // [object Object]: 2Object.keys(o3).map((v, i) => {console.log(v); // [object Object]console.log(i); // 0console.log(typeof v); // string})

Map就不存在覆盖: 

        let o1 = { a: 1 }let o2 = { b: 1 }let o3 = new Map()o3.set(o1, '123')o3.set(o2, '234')console.log(o3);console.log(o3.get(o1));console.log(o3.get(o2));

5.接受数组作为参数——该数组必须是表示键值对的数组

作为构造函数,Map 也可以接受一个数组作为参数。注意该数组的成员是一个个表示键值对的数组。

const map = new Map([['name', '张三'],['title', 'Author']
]);
map.get('name') // "张三"
map.get('title') // "Author"

6.Map传址特点--对象作为键名时,传输的是地址,所以下例中的两个{x:1}虽然长相一样,但实际值不同(存储在堆内存的两个位置)

对象作为键名时,传输的是地址,所以下例中的两个 {name:'曹操'} 虽然长相一样,但实际值不同(存储在堆内存的两个位置)

const map = new Map([['name', '张三'],['title', 'Author'],[{name:'曹操'},'枭雄']
]);
map.get('name') // "张三"
map.get('title') // "Author"
map.get({name:'曹操'});//返回undefined。为什么?因为应用数据类型比较的是地址 {name:'曹操'} !=={name:'曹操'}。

想要obj最为key并且可以获取值,必须以下面形式才行:

let obj = {name:'曹操'};
const map = new Map([obj,'枭雄']);
map.get(obj);//'枭雄'

7.Map构造函数接受数组作为参数的本质,内部机制使用forEach进行遍历

内部机制:

  • 通过items通过forEach()进行遍历 ,items.forEach(([key, value],index) => map.set(key,value))
  • 并且使用到数组解构的模式匹配
const items = [['name', '张三'],['title', 'Author']
];
const map = new Map();
items.forEach(([key, value],index) => map.set(key,value))

8.Map自带的一些方法 keys() values() entries()

9.Map参数的扩展

任何具有 Iterator 接口、且每个成员都是一个双元素的数组的数据结构 都可以当作Map构造函数的参数

const set = new Set([['foo', 1],['bar', 2]
]);
const m1 = new Map(set);
m1.get('foo') // 1
const m2 = new Map([['baz', 3]]);
const m3 = new Map(m2);
m3.get('baz') // 3

http://www.qdjiajiao.com/news/1080.html

相关文章:

  • 前端实战项目11套站长工具seo综合查询引流
  • 做ps找图的网站有哪些培训机构是干什么的
  • 什么网站百度收录快东莞网站建设做网站
  • php动态网站制作流程图热点军事新闻
  • h5网站价格佛山网络推广哪里好
  • 网站代备案多少钱大批量刷关键词排名软件
  • 客户拒绝做网站的理由抖音seo排名软件
  • 网站建设营销型网站海外市场推广做什么的
  • 重庆做兼职哪个网站哈尔滨最新消息
  • wordpress图文教程南宁优化网站收费
  • 复兴专业做网站山东16市最新疫情
  • 网站单独页面怎么做301重定向百度登陆页面
  • 手机网站制作工具杭州优化商务服务公司
  • 旅游做网站seo怎么推广
  • 网页制作三剑客不包括进一步优化落实
  • 做兼职的设计网站有哪些企业培训课程推荐
  • 淄博云天网站建设推广网上营销推广
  • 网站都有备案号吗seo是啥软件
  • 网站建设的电话怎么制作百度网页
  • 北京网站改版有什么用快速网站排名优化
  • 黑龙江 俄语网站制作电子商务网站有哪些?
  • 装修网网站建设不知怎么入门
  • jsporacle动态网站开发企业推广的网站
  • 建筑公司网站首页图片百度权重划分等级
  • 最好的完全免费开源企业网站什么网站百度收录快
  • 钓鱼网站制作的报告网络营销推广价格
  • 黑客怎么攻击网站网络推广是指什么
  • 做的最好自考网站是哪个网络促销
  • 二手购物网站建设方案教育培训机构网站
  • 朝阳市网站公司开发网站的流程