什么是键值对?
键值对(“key = value”),顾名思义,每一个键会对应一个值。
Map对象作用?
利用Map() 生成的对象保存键值对,键(属性名)任何值类型都可以。
利用Object() 生成的对象保存键值对,属性名(键)只能是string类型,或者Symbol类型
Map和object的区别?
1.一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值
2.Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是
3.Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算
Map的基本方法
// [map对象]
// Map对象用来保存键值对
// 在Map对象中任何值(对象或者原始值) 都可以作为一个键(任何数据类型)或一个值
// [基本Map方法]
// new Map():创建新的Map对象
// set():为Map对象中的键设置值
// get():获取Map对象中键的值
// keys():返回Map对象中键的数组
// values():返回Map对象中值的数组
// entries():返回Map对象中键/值对的数组
// Map()属性
// Map.size:返回Map中元素的数量
Map方法的创建及获取
Map的创建
//创建对象
const grapes = {name:
'Grapes'};
const bear = {name:
'Bear'}
const oranges = {name:
'Oranges'}
//创建新的Map对象(new Map())
const fruits = new Map();
//向Map对象添加成员(set())
fruits.set(grapes,800);
fruits.set(bear,500);
fruits.set(oranges,400);
Map的获取
//获取Map对象中键中的值(get())
console.log(fruits.get(grapes));//500
//获取Map对象中键的数组(keys())
console.log(fruits.keys());//{{...},{..},{...})
//获取Map对象中值的数组(values())
console.log(fruits.values());//{500,200,200}
//获取Map对象中键/值对的数组(entries())
console.log(fruits.entries())//{{...}=>500,{=> 200, {..} => 200}
//返回Map中元素的数量(Map.size)
console.log(fruits.size)
作用域
什么是作用域?
通常来说,一段程序代码中所用到的名字不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
JS作用域:就是代码名字(变量)作用的范围
作用域的目的:是为了提高程序的可靠性,更重要的是减少命名冲突
全局作用域
根据作用域的不同,变量可以分为两种:全局变量 和 局部变量,在全局作用域下声明的变量叫做 全局变量(在函数外部定义的变量)。
全局作用域的创建方法
<script>
var num = 10;
function a(){
console.log(num);
}
a();
console.log(num);
</script>
局部作用域
在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)。
局部作用域的创建方法
<script>
function b(){
var num1 = 10;
num2 = 20;
console.log(num1);
}
b();
console.log(num2);
</script>
全局变量和局部变量的区别:
全局变量:在任何一个地方都可以使用,全局变量只有在浏览器关闭的时候才会销毁,比较占用内存资源
局部变量:只能在函数内部使用,当其所在代码块被执行时,会被初始化;当代码块执行完毕就会销毁,因此更节省节约内存空间;