Map是类似Object的一种键值对集合,区别在于Map的键不仅限于是字符串,其他各种类型的值包括对象都可以成为Map的键
Set也是ES6新增的对象,Set是一组key的集合,但不存储value, 而且key不重复,可自动排重
add(value):添加某个值,返回Set结构本身。
delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
has(value):返回一个布尔值,表示该值是否为Set的成员。
clear():清除所有成员,没有返回值。
原文链接: https://blog.csdn.net/hot_cool/java/article/details/83685046
1.数组转换成map键值对
var m=new Map()
var arr=['a','b','v','r']
for(var i=0i<arr.lengthi++){
m.set(arr[i],i)//转变成新的map键值对,也可以像原有键值对添加新得键值对,具有唯一性,当重复赋值,则会使用最后一个值
}
console.log(m) //{"a" =>0,"b" =>1,"v" =>2,"r" =>3}
console.log(m.get('a')) //查看键值对a的值 0
console.log(m.has('c')) //查看是否存在这个键值对,返回布尔类型的值 false
console.log(m.delete('r')) //删除r键值对 返回布尔类型 true
console.log(m) //{"a" =>0,"b" =>1,"v" =>2}
注意:在javascript语言中,key的值只能是字符串,不能是其它的。
在javascript中,对象本身就是一种Map结构。
var map = {}
map['key1'] = 1
map['key2@'] = 2
console.log(map['key1'])//结果是1.
console.log(map['key2@'])//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop])
}
}
动态的赋值key:
var key1 = '动态key1'
var key2 = '动态key2'
var map = {}
map[key1] = 1
map[key2] = 2
console.log(map[key1])//结果是1.
console.log(map[key2])//结果是2.
//如果遍历map
for(var prop in map){
if(map.hasOwnProperty(prop){
console.log('key is ' + prop +' and value is' + map[prop])
}
}
扩展资料
JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
console.log("a")//这是正确的
console.log("b")//这是正确的
console.logg("c")//这是错误的,并且到这里会停下来
console.log("d")//这是正确的
console.log("e")//这是正确的
/*解决办法*/
try{console.log("a")}catch(e){}//这是正确的
try{console.log("b")}catch(e){}//这是正确的
try{console.logg("c")}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
try{console.log("d")}catch(e){}//这是正确的
try{console.log("e")}catch(e){}//这是正确的
Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。
V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译)。
但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是C++)。因此在不同的测试上,两者性能互有优劣。
与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
参考资料来源:百度百科:javascript
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)