第一部分:Set数据结构
1.set定义与初始化数据(set是类似于数组,具有单一的值)
? ? ? ? ??? // const set = new Set ([1,2,3,4]) ?? ??? ??? ?// // console.log(set);
?//返回的值是{1, 2, 3, 4}
2,连续加值(一个add只能加一个可以关联多个add)
? ? ?? ??? ??? ?// set.add(5).add(6); ?? ??? ??? ?// // console.log(set); ?? ??? ??? ?// set.delete(6); ?? ??? ??? ?// // console.log(set)
//最终结果为 {1, 2, 3, 4, 5} ?已删除6?
3,set遍历
? ? ? ? ? // set.forEach(item=>console.log(item)); ?? ??? ??? ?// // console.log(set);? ? ? ??
??//遍历set的结果为1,2,3,4,5
4,? 清除set值(这里是全部清除);
? ?? // set.clear() ?? ??? ??? ?// console.log(set);?? ? ? ? ? ?
??//返回的结果为 ??{size: 0}
? 第二部分:?map数据结构
?? 1,初始化数值
第一种方式:通过对象的方法去设置初识化值
? ? ? ? ? ? // const ?Info={height:180,weight:140}; ?? ??? ??? ?// // console.log(map);? ??? ??
最终结果为 :{height: 180, weight: 140}
第二种方式:通过数组的形式去遍历数据值
??? ?// const map = new Map([['major','计算机'],['sex',1]]); ?? ??// console.log(Info);
?最终结果为 是以对象的形式打印出结果 {'major' => '计算机', 'sex' => 1}
2,设置map的值 key->value
? ? ? ? ? ?? //这里的map是上面map = new Map([['major','计算机'],['sex',1]]);的值 ?? ??? ??? ?// map.set('realname','张三'); ?? ??? ??? ?// // console.log(map); ?? ??? ??? ?// map.set('age',18); ?? ??? ??? ?// // console.log(map); ?? ??? ??? ?// map.set(Info,"个人信息"); ?? ??? ??? ?// // console.log(map);??
?最终实现结果为{'major' => '计算机', 'sex' => 1, 'realname' => '张三', 'age' => 18, {…} => '个人信息'}
3,删除
?// map.delete('age');
? // console.log(map);? ??
删除后的(age 年龄){'major' => '计算机', 'sex' => 1, 'realname' => '张三', {…} => '个人信息'}
?4.获取map的长度
? ? ? ? ? ?? // console.log(map.size);?? ?? ??? ??? ?//返回的值是 {size: 0}? ? ? ? ??
???? ?// 返回的结果为 ?4
5查找所有的map ,你也可以指定
? // map.has('realname'); ?? ??? ??? ?// console.log(map); ?? ??? ??? ?// map.clear() ?? ??? ??? ?// console.log(map);
? ?//返回的值是 {size: 0}
6,获取map的所有keys的集合
? ?// const keys = map.keys(); ? ? // console.log(keys);
?? //打印出来的值是{'major', 'sex', 'realname', {…}}
7,类似的数组(对象)
? ? ? ? ? ? // const set = new Set ([1,2,3,4]); ?? ??? ??? ?// console.log(set);? ? ? ? ?
?//最终返回值是一个类似的数组(对象)
第三部分:对象
? ? 1,创建对象
? ? ? ? ?// let realname="张三"; ?? ??? ??? ?// let age = 18; ?? ??? ??? ?// // let key = 'heigth'; ?? ??? ??? ?// let keys = {realname,age}; ?? ??? ??? ?// console.log(keys);
最终结果为:{realname: '张三', age: 18}
2:构建key值(这里的keys是上面的keys,所以下面的获取值也是keys)
? ? ? ? ??// let realname="张三"; ?? ??? ??? ?// let age = 18; ?? ??? ??? ?// // let key = 'heigth'; ?? ??? ??? ?// let keys = {realname,age}; ?? ??? ??? ?// keys[key] = 180; ?? ??? ??? ?// console.log(keys)
最终结果为:{realname: '张三', age: 18, heigth: 180}
3:合并对象
? ? ? ? ? ? // let ?arr = {'realname':'张三'}; ?? ??? ??? ?// let ?arr1= {'age':19}; ?? ??? ??? ?// let ?arr2 = {...arr,arr1}
? ? ? ? ? ? // console.log(arr2);
最终实现结果为:{realname: '张三', arr1: {…}}
第四部分:symbol的应用
1:Symbol是唯一 即使同一个变量生成的也不相等
? ? ? ? ? ? ? // const a = Symbol("a");
? ? ? ? ? ? ?//仅含有Symbol属性的变量都是唯一的,即使同一变量名,那也不同 ?? ??? ??? ?// const b = Symbol("a"); ?? ??? ??? ?// console.log(a===b);
最终实现结果为:返回的是false
2,第一种方法:
? ?? ?let a = Symbol(); ?? ??? ? ? let Person = { ?? ? ? ? ? ? ? a:()=>{ ?? ??? ??? ??? ? ? console.log("say"); ?? ??? ??? ? ? } ?? ??? ? ? } ?? ??? ? ? Person.a();
?? ?let a = Symbol();
? ? ?let Person ={ ?? ??? ??? ? ?? ?? ??? ? ? } ?? ??? ? ? Person[a] = ()=>{ ?? ??? ??? ?console.log('say'); ?? ??? ? ? } ?? ??? ? ? ?Person[a]();
以上返回值为:say
第五部分:DOM classList 属性
以案例来阐述该部分的内容:
css内容部分:
?? ?.class1{ ?? ??? ??? ??? ?background: red; ?? ??? ??? ?} ?? ??? ??? ?.class2{ ?? ??? ??? ??? ?color:red; ?? ??? ??? ?} ?? ??? ??? ?.class3{ ?? ??? ??? ??? ?font-size: 20px; ?? ??? ??? ?}
HTML内容部分:
?? ?<div id="demo">我是一个容器</div> ?? ??? ?<button id="btn1">控制颜色</button> ?? ??? ?<button id="btn2">控制字体大小</button> ?? ??? ?<button id="btn3">判断是否有颜色样式</button> ?? ??? ?<button id="btn4">判断索引1的类名</button><br/> ?? ??? ?<button id="btn5">删除颜色样式</button> ?? ??? ?<button id="btn6">控制字体toggle方式</button>? ? ? ??
js内容部分:
? ??? ?let Demo = document.getElementById("demo"); ?? ??? ??? ?let btn1 = ?document.getElementById("btn1"); ?? ??? ??? ?let btn2 = ?document.getElementById("btn2"); ?? ??? ??? ?let btn3 = ?document.getElementById("btn3"); ?? ??? ??? ? ?? ??? ??? ?btn1.addEventListener('click',()=>{ ?? ??? ??? ??? ? ?//classlist 添加多个样式 ? ? ? ? ? ? ? ? ? Demo.classList.add("class1","class2"); ?? ??? ??? ?}); ?? ??? ??? ? ?? ??? ??? ?btn2.addEventListener('click',()=>{ ?? ??? ??? ??? ?Demo.classList.add("class3") ?? ??? ??? ?}); ?? ??? ??? ?// classList.contains 判断是否存在某个样式 ?? ??? ??? ?btn3.addEventListener('click',()=>{ ?? ??? ??? ??? ?console.log(Demo.classList.contains("class1")?"存在class1的样式":"不存在class1的样式"); ?? ??? ??? ?}); ?? ??? ??? ? ?? ??? ??? ?// classList.item 判断指定下标的类名 ?? ??? ??? ?btn4.addEventListener('click',()=>{ ?? ??? ??? ??? ?console.log(Demo.classList.item(1)); ?? ??? ??? ?}); ?? ??? ??? ?// classList.remove 删除样式 ?? ??? ??? ?btn5.addEventListener('click',()=>{ ?? ??? ??? ??? ?Demo.classList.remove("class1","class2"); ?? ??? ??? ?}); ?? ??? ??? ? ?? ??? ??? ?btn6.addEventListener('click',()=>{ ?? ??? ??? ??? ?Demo.classList.toggle("class3"); ?? ??? ??? ??? ?//第二个参数 不管样式存在与否 true就强制加上 ?false就强制移除 ?? ??? ??? ??? ?Demo.classList.toggle("class3",false); ?? ??? ??? ??? ? ?? ??? ??? ?});
|