Map方法、作用域

目录

什么是键值对

举例子

方法 

 map.clear()

 Map.delete(key)

 Map.has (key)

Map.entries() 

 Map.set(key, value)

 Map.get(key)

 Map.keys()

 Map.values()

什么是作用域

 作用域的类型

全局作用域 

 局部作用域

 块级作用域


什么是键值对

键值对(“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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值