当前位置:网站首页>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)
边栏推荐
- Microsoft computer butler 2.0 beta experience
- 在线公众号文章内容转音频文件实用小工具
- GRNN、RBF、PNN、KELM之间究竟有什么联系?
- 数据库sql的基础语句
- Computer software: recommend a disk space analysis tool - WizTree
- Operating System Kernel
- golang 坐标格式 转换 GCJ02ToWGS84
- EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)
- FCN——语义分割的开山鼻祖(基于tf-Kersa复现代码)
- RHCE之路----全
猜你喜欢
2DCNN, 1DCNN, BP, SVM fault diagnosis and result visualization of matlab
Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same
Faster RCNN原理及复现代码
CMDB 腾讯云部分实现
狗都能看懂的Pytorch MAML代码详解
IP 核之 MMCM/PLL 实验
数据库知识:SQLServer创建非sa用户笔记
MAML原理讲解和代码实现
网络安全行业是蓝景吗?
格拉姆角场GAF将时序数据转换为图像并应用于故障诊断
随机推荐
Uos统信系统 CA根证书搭建
bitnami/mongodb-sharded在AWS EKS扩展shard失败解决
golang rtsp拉流测试
数据库JDBC DAO层方法
av_read_frame 阻塞,基于回调的解决办法
数据库文档生成工具V1.0
JVM三大常量池与方法区
Implementation of ICEEMDAN Decomposition Code in MATLAB
GRNN、RBF、PNN、KELM之间究竟有什么联系?
IE8 打开速度慢的解决办法
读取JDBC配置文件
狗都能看懂的Self-Attention讲解
sql常用函数
你要悄悄学网络安全,然后惊艳所有人
Uos统信系统控制台欢迎登陆后消息及所处区域配置
Visualization and Animation Technology (Computer Animation)
Database document generation tool V1.0
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
生成一个包含日期的随机编码
并发概念基础:线程,死锁