学习js的第十五天【symbol类型,set类型】es引入的新基本数据类型

  • Post author:
  • Post category:其他

一、symbol类型

1.引入原因:ES5的对象属性名都是字符串,很容易造成属性名冲突

symbol表示独一无二的值:

2.创建symbol:

let syml=symbol(描述符:去描述当前symbol表示什么意义)

二、set类型

1.作用:存储无序数据的集合

2.创建:let set=new Set()

let set = new Set([1,2{name:'jack'},function()])  //存储的值可以是任意的东西

3.常用的属性和方法:

1>size:用来获取该数据结构中有多少个数   set.size

2>add:用来追加元素   set.add()

3>delete:用来删除数组中某个元素  set.delete()

4>clear:清空所有元素  set.clear()

5>forEach:遍历元素   set.forEach(function(item){})

6>…展开运算符:获取set里的数据   set转数组

set转数组:集合转数组

function test(){
let set = new Set([10,20,30])
let arr=[...set]
}

4.特点:集合set中的元素不能重复

5.应用:数组去重

function test(){
let arr = [10,20,10,30,20]
let set = new Set(arr)   //此时已经去重成功
arr = [...set]  //转成数组去重成功

Map:复杂数据类型

1.作用:是一个数据集合,是一个很类似于对象object的数据集合

2.Map存储的数据是key/value形式,key可以是任意类型

3.创建:let map = new Map()

let map = new Map([‘name’,’jack’],[100,18])

4.常用的属性和方法:

1>set:向集合中添加数据:map.set(ture,’成立’)

2>get:获取元素:map.get(ture)

3>delete:删除元素:map.delete(ture)

4>has:判断集合中是否有元素:map.has(ture)

5.特点:查找存储在map中的数据,可以不用遍历,根据key直接获取

value=map.get(key)

//数组转map
let map = new Map()
arr.forEach(item=>{
 map.set(item.value,item,name)})

for-of循环:遍历数组,字符串,Map

语法:for(let v of arr){}

如果是遍历数组,v就表示数组元素,遍历字符串,v就表示字符

function test(){
 let arr=[10,20,30]
for(const v of arr){
  console.log(v)}       //遍历出数组元素

模块化语法:import/export

1.模块化:每个js文件都可以看作一个模块,每个js模块中的内容与其他模块相互独立

2.模块间通讯:

1.第一种:

a.js暴露模块:export变量或方法名

b.js引入模块:import{变量,方法} from ‘a.js’

index.html:<script type=”module”>import{变量,方法} from ‘a.js'</script>

2.第二种:

export default{name:’jack’}

import A from ‘c.js’

//直接在需要暴露的方法前加export
let num = 100
//暴露
export const getMax=(m,n)=>{
 let max=m
 if(n>max){max=n}
//导入/引入
<script>import{getMax}from 'a.js'      //暴露方式
        let max = getMax(20,30)    //调用模块化里面的函数
</script>
 //显示最大值
const spanEle=document.querySelector('span')
spanEle.innerHTML=Max

js错误处理机制:

1.javascript引擎负责执行javascript代码,如果发现错误代码,js引擎会向上抛出异常错误,如果异常错误没有处理语句,继续向上抛,直到系统处理

2.系统处理方式:终止程序执行,在控制台显示异常错误信息

3.异常错误的分类:运行时的错误/逻辑错误

SyntaxError—–>语法错误

ReferenceError—–>引用错误

TypeError—–>类型错误

RangeErrorr—–>值超出有效范围时发生的错误

4.自己捕获异常进行处理:

try{
    //可能发生的异常
}catch(error){console.log(error) //自己打印异常}finally{不论程序有无出错都执行}

查询数组中满足条件的元素的索引号:

let index = ProductList.findIndex(item=>item.number==id)   //遍历数组


版权声明:本文为m0_68488342原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。