JavaScript中Map对象

什么是键值对?

键值对(“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作用域:就是代码名字(变量)作用的范围

作用域的目的:是为了提高程序的可靠性,更重要的是减少命名冲突

全局作用域

根据作用域的不同,变量可以分为两种:全局变量 和 局部变量,在全局作用域下声明的变量叫做 全局变量(在函数外部定义的变量)。

全局作用域的创建方法

局部作用域

在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)。

局部作用域的创建方法


全局变量和局部变量的区别:

全局变量:在任何一个地方都可以使用,全局变量只有在浏览器关闭的时候才会销毁,比较占用内存资源

局部变量:只能在函数内部使用,当其所在代码块被执行时,会被初始化;当代码块执行完毕就会销毁,因此更节省节约内存空间;

你可能感兴趣的:(javascript,前端,开发语言)