<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>canvas测试</title>
</head>
<body>
<canvas width="400" height="600" id="canvas-test">
</canvas>
<script>
// ES6的Map和Set
// javaScript的默认对象表示方式{},就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。
// 一 Map
// 1 判断浏览器是否支持Map和Set!
'use strict';
var m = new Map();
var s = new Set();
console.log('你的浏览器支持Map和Set!');
// 2 Map是一组键值对的结构,具有极快的查找速度。
// 给定一个名字,要查找对应的成绩。用Map实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
// 3 Map的初始化和 获取,增加,删除的特性
// 初始化Map需要一个二维数组,或者直接初始化一个空Map
var map=new Map([['Bob',85]]);// 空的Map
map.set('limy',88);// 添加新的 key-value
map.has('Bob');// 是否存在Bob:true
map.set('Michael',89);
map.delete('Michael');// 删除 key,'Michael'
map.get('Michael');
//由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
// 二 Set
// Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key。
var s1=new Set();
var s2=new Set([1,2,3])
// 重复元素在 Set 中自动被过滤
var s=new Set([1,2,3,3,'3']);
// add(key) 可以添加元素到Set中,可以重复添加相同的key,但是不会有效果
s.add(4);
s.add(4);
// delete(key) 方法可以删除元素
s.delete(2);
</script>
</body>
</html>