当前位置:网站首页>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)
边栏推荐
猜你喜欢

Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols

基于EEMD+GRU+MLR的时间序列预测

数据库技巧:整理SQLServer非常实用的脚本

EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)

数据库知识:SQLServer创建非sa用户笔记

MySQL之SQL结构化查询语言

Uos统信系统 IP地址以及完整主机名配置

Memory limit should be smaller than already set memoryswap limit, update the memoryswap at the same

CMDB 阿里云部分实现

无监督特征对齐的迁移学习理论框架
随机推荐
golang 的库引用方法
matlab的2DCNN、1DCNN、BP、SVM故障诊断与结果可视化
软件:给大家推荐一款国产非常好用的效率软件uTools
Network skills: teach you to install batteries on the router, you can still surf the Internet when the power is cut off!
Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
Database knowledge: SQLServer creates non-sa user notes
YOLOv3详解:从零开始搭建YOLOv3网络
网页中常用的两种绘图技术,用canvas绘图,绘制出一个三角形,矩形,柱状图,扇形图
如何在Excel 里倒序排列表格数据 || csv表格倒序排列数据
格拉姆角场GAF将时序数据转换为图像并应用于故障诊断
关于网络安全行业你知道多少?
Database: Organize Four Practical SQL Server Scripting Functions
罗斯50分
CMDB 阿里云部分实现
在线公众号文章内容转音频文件实用小工具
给想要转行渗透测试人的忠告
让src文件夹能读取xml文件
复杂格式的json转递
EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)
【音视频开发系列】fdk_aac 之 PCM 转 AAC