首先我们要明白什么键值对:
// 键值对('key = value')
// 顾名思义,每一个键会对应一个值
// 例:a:身份证号和你本人是绑定的关系,每一个身份证(键)会对应一个人(值)
// b:登录微信和游戏,需要输入手机号验证身份,手机号码(键)对应接收用户(值)
// 每个键对应相应的值,按下相应的键时,就会输出相应的结果。
// 键:就是存的值的编号;值:就是要存放的数据。
接下来就是Map对象:
// 【Map对象】
// Map对象用来保存键值对
// 在Map对象中任何值(对象或者原始值)都可以作为一个键(任何数据类型)或一个值 // 【基本Map方法】
// new Map():创建新的Map对象
// set():为Map对象中键设置值
// get():获取Map对象中键的值
// keys():返回Map对象中键的数组
// entries():返回Map对象中键/值对的数组
// 【Map()属性】
// Map.size:返回Map中元素的数量
下面是一些代码详解:
// 创建对象
const ducks = {name:'Ducks'};
const dogs = {name:'Dogs'};
const squirrels = {name:'Squirrels'};
// 创建新的Map对象(new Map())
const animals = new Map();
// 向Map 对象添加成员(set())
animals.set(ducks,111);
animals.set(dogs,222);
animals.set(squirrels,333);
// 获取Map对象中键中的值(get())
console.log(animals.get(ducks));//111
// 获取Map对象中键的的数组(keys())
console.log(animals.keys());
// 获取Map对象中值的数组(value())
console.log(animals.values());//{111,222,333}
// 获取Map对象中键/值对的数组(entries())
console.log(animals.entries());// {{…} => 111, {…} => 222, {…} => 333}
// 返回Map中元素的数量(Map.size)
console.log(animals.size);
【其他Map()方法】
// clear():删除Map中的所有元素
// delete():删除由键指定的元素
// has():如果键存在,则返回true
作用域什么呢?
【作用域】
// 作用域是运行时代码中某些特定部分中变量,函数和对象的可访问性
// 作用域决定了代码中变量和其他注意的可见性
function Fun(){
let a = '内层变量'
console.log(a);
}
Fun();//先执行函数
function fun (){
let a = '变量'
console.log(a);
}
fun()
// console.log(a);//a is notdefined
// 变量a在全局作用域没有声明,所以在全局作用域下取值会报错
// 作用域是一个独立的地盘,让变量不会不会外泄,暴露出去
// 作用域最大的用处就是隔离变量,不同作用下同名变量不会有冲突
// ES6之前Javascript没有块级作用域,只有全局作用域和函数作用域。
// ES6可以通过新增命令let和const来体现块级作用域
【函数作用域】
//【局部变量/函数作用域】
// 声明在函数内部的变量,和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到。
function outFun(){
var a = '函数内部的变量';
function innerFun(){
console.log(a);//函数内部的变量
}
innerFun();
}
// console.log(a);//a is not defined
innerFun;//inner is not defined
outFun();