目录
什么是键值对
键值对(“key = value”),顾名思义,每一个键会对应一个值。
举例子
- 身份证号和你本人的绑定关系,在系统中输入身份证号(键)都会对应一个小可爱(值)。
- 咱在登陆微信、游戏或外卖账号时,需要输入手机号验证身份,这时,系统会向该手机号发送一条验证短信。这里的手机号码(键),对应的接收用户就是“值”。
每个键对应着相应的值, 当按下相应的键时, 就会输出相应的结果
方法
map.clear()
clear()方法会移除Map对象中的所有元素。
const map1 = new Map();
map1.set('bar', 'baz');
map1.set(1, 'foo');
console.log(map1.size);
// expected output: 2
map1.clear();
console.log(map1.size);
// expected output: 0
Map.delete(key)
delete() 方法用于移除 Map 对象中指定的元素。
const map1 = new Map();
map1.set('bar', 'foo');
console.log(map1.delete('bar'));
// expected result: true
// (true indicates successful removal)
console.log(map1.has('bar'));
// expected result: false
Map.has (key)
方法has() 返回一个bool值,用来表明map 中是否存在指定元素
var myMap = new Map();
myMap.set("bar", "foo");
myMap.has("bar"); // returns true
myMap.has("baz"); // returns false
Map.entries()
entries() 方法返回一个新的包含 [key, value] 对的 lterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同。
const map1 = new Map();
map1.set('0', 'foo');
map1.set(1, 'bar');
const iterator1 = map1.entries();
console.log(iterator1.next().value);
// expected output: ["0", "foo"]
console.log(iterator1.next().value);
// expected output: [1, "bar"]
Map.set(key, value)
set() 方法为 Map 对象添加或更新一个指定了键(key)和值(value)的(新)键值对。
const map1 = new Map();
map1.set('bar', 'foo');
console.log(map1.get('bar'));
// expected output: "foo"
console.log(map1.get('baz'));
// expected output: undefined
Map.get(key)
get() 方法返回某个 Map 对象中的一个指定元素。
const map1 = new Map();
map1.set('bar', 'foo');
console.log(map1.get('bar'));
// expected output: "foo"
console.log(map1.get('baz'));
// expected output: undefined
Map.keys()
keys() 返回一个引用的 Iterator 对象。它包含按照顺序插入 Map 对象中每个元素的key值
const map1 = new Map();
map1.set('0', 'foo');
map1.set(1, 'bar');
const iterator1 = map1.keys();
console.log(iterator1.next().value);
// expected output: "0"
console.log(iterator1.next().value);
// expected output: 1
Map.values()
values()方法返回一个新的Iterator对象。它包含按顺序插入Map对象中每个元素的value值。
var myMap = new Map();
myMap.set("0", "foo");
myMap.set(1, "bar");
myMap.set({}, "baz");
var mapIter = myMap.values();
console.log(mapIter.next().value); // "foo"
console.log(mapIter.next().value); // "bar"
console.log(mapIter.next().value); // "baz"
什么是作用域
作用域,即变量(变量作用域又称上下文)和函数生效(能被访问)的区域或集合
换句话说,作用域决定了代码区块中变量和其他资源的可见性
作用域的类型
1.全局作用域
2.函数作用域(也叫局部作用域)
3.块级作用域(这个是ES6为我们提供的,也属于局部作用域)
全局作用域
变量在函数外定义为全局变量,网页中的所有脚本和函数均可使用。
注意:如果变量在函数内部没有声明(未使用var关键字),该变量默认为全局变量,不论这个变量在哪被使用。
var a = 10;
//此处可调用 a 变量
function fn(){
//函数内可调用 a 变量
}
局部作用域
变量在函数内部声明为局部作用域,局部变量只作用于函数内,不同的函数可以使用相同名称的变量,它只能在函数内部访问。局部变量在函数开始执行时创建,函数执行完成后局部变量会自动销毁。
//此处不能调用 a 变量
function fn(){
var a = 10;
//函数内可调用 a 变量
}
块级作用域
ES6引入了let和const关键字,和var关键字不同,在大括号中使用let和const声明的变量存在于块级作用域中,在大括号之外不能访问这些变量
{
//块级作用域中的变量
var msg = 'English'
let info = 'hello world'
const num = 10
console.log(msg) //English
console.log(info)//hello world
console.log(num) //10
}
console.log(msg) //English
console.log(info) //Uncaught ReferenceError: info is not defined
console.log(num) //Uncaught ReferenceError: num is not defined