当前位置:网站首页>ES6新语法:symbol,map容器
ES6新语法:symbol,map容器
2022-08-04 05:34:00 【初夏半微凉】
Symbol
es5:五个基本数据类型 number boolean string undefined null
es6:一个基本数据类型 symbol
symbol的作用:
为了防止有一样的名字造成后面的覆盖前面的代码功能
所以es6出了一个symbol来表示独一无二的
以后有相同的变量名也不会覆盖,不是同一个
即他是一个内置全局函数,生成一个独一无二的数据
let s1 = Symbol(10);
let s2 = Symbol(10);
console.log(s1,s2,s1==s2) // Symbol(100),Symbol(100),false
ES6的新数据容器:map
map没有创建的语法糖,就是可以简写的写法
var m1=new Map([["age",100],[20,"hello"],[a,90]])
//取数据,键值是什么就完全按照那样写,否则取不出来,对应的值
var re1=m1.get("age")
var re2=m1.get(20)
var re3=m1.get(["key"])
var re4=m1.get(a)
console.log(re1,re2,re3,re4)
//存数据
m1.set("life",1)
m1.set("age",1)
console.log(m1)
// 查看s1里面有多少个值
console.log(m1.size)
// 删除s1中的元素
m1.delete(20)
var re5=m1.delete("age")
var re6=m1.delete("age")
console.log(m1,re5,re6)
// 直接全部清空s1里面的函数
m1.clear()
console.log(m1)
用map来做一个类似于购物车的功能
可以进行商品的加减,也可以删除,计算商品总和
//没有进行页面的设计 就用控制台打印输出
//后端取出来的数据 要先解析然后保存到前端的某个数据容器中
var mycar = {
data: new Map(),
// 一键清除购物车里的所有商品
clear:function(){
this.data.clear()
},
// 减去商品的件数
jianshao:function(id){
let obj=this.data.get(id)
if(obj){
obj.count--
if(obj.count<=0){
this.data.delete(id)
}
}
},
// 增加商品的件数
add: function(id) {
let obj = this.data.get(id)
if (obj) {
obj.count++
this.data.set(id, obj)
}
},
// 计算商品的总和
total: function() {
var result = 0;
this.data.forEach(function(el) {
console.log(el)
result += el.count * el.price
})
return result
},
network: function() {
// 由后端传入前端的数据,现在没有链接数据库,所有自己先写几个数据进去
var jiashuju = [{
id: 1234,
title: "小炒肉",
price: 18,
count: 1
}, {
id: 1235,
title: "东坡"肘子,
price: 28,
count: 1
}, {
id: 1236,
title: "米饭",
price: 2,
count: 2
}];
var self = this
jiashuju.map(function(el) {
self.data.set(el.id, el)
})
}
}
// 调用数据
mycar.network()
// 现在没有绑定鼠标单击事件,所有由手动添加
mycar.add(1236)
mycar.add(1236)
mycar.add(1236)
mycar.add(1236)
mycar.jianshao(1234)
console.log(mycar.data)
var re1 = mycar.total()
console.log(re1)
// 调用一键清除功能
mycar.clear()
console.log(mycar.data)
边栏推荐
猜你喜欢
MySQL之SQL结构化查询语言
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
RuntimeError: You called this URL via POST, but the URL doesn‘t end in a slash and you have APPEND_S
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
LeetCode刷题
关于gopher协议的ssrf攻击
A priori box (Anchor) in target detection
你要悄悄学网络安全,然后惊艳所有人
Database document generation tool V1.0
Arduino之ESP8266编程学习总结体会
随机推荐
VMD combined with ISSA to optimize LSSVM power prediction
MySQL(4)
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!
GRNN、RBF、PNN、KELM之间究竟有什么联系?
Database knowledge: SQLServer creates non-sa user notes
Pfsense漏洞复现(CVE-2021-41282)
数据库知识:SQLServer创建非sa用户笔记
生成一个包含日期的随机编码
av_read_frame 阻塞,基于回调的解决办法
并发概念基础:线程,死锁
网络安全工程师们改不掉的“老毛病”
EL expression
益智小游戏- 算算总共多少正方形
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
基于爬行动物搜索RSA优化LSTM的时间序列预测
JUC并发容器——ConcurrentLinkedQueue
升级到 MediaPlayer 11 时跳过验证副本的方法
JVM三大常量池与方法区
Online public account article content to audio file practical gadget
有且仅有的三种处理JSON的方法