JS Es6新特性-Symbol,map,set,for..of,模块化语法,错误机制

38 阅读2分钟

Symbol

数据类型
基本数据类型
string number boolean null undefined
复杂数据类型
Object Array Date String Number Boolean ...

    Symbol
        - ES6新增的基本数据类型
        - 引入原因:ES5的对象属性名都是字符串,容易造成属性名冲突。
           使用一个他人提供的对象,
        - Symbol 表示独一无二的值
        - 定义
            let sym = Symbol(描述符)
                描述符->描述当前symbol表示什么意义
        - 检查数据类型

image.png

Map和Set

set

javascript 内置对象

Set
=> 复杂数据类型
=> 作用
    - 存储无序数据的集合
=> 创建
    let set = new Set()  //空集合
    let set = new Set([1,2,{},function({},'hello')])  

=> 属性和方法
    size
    add
    delete
    clear

    遍历 set foreach

=> 特点
    集合set中元素不能重复

=> 应用
    数组去重

image.png

image.png

image.png

Map

Map

     => 复杂数据类型
     => 作用
            是一个数据集合,是一个很类似于对象Obje的数据集合
            Map存储的也是key/value形式,key可以是任意类型
    => 创建
        let map = new Map()
        let map = new Map([['name','jack'],[100.18]])
    
    => 属性和方法
        size
        set
        get
        delete
        has

    => 特点
        查找存储在map中的数据,可以不用遍历,根据key直接获取
        value = map.get(key)

image.png

image.png

image.png

for..of

for-of

    作用:  遍历字符串,数组,Map
            for-in 对象

    语法:  for(let v of arr){
            //遍历数组 v:数组元素
    }
    or(let v of str){
            //遍历字符串 v:字符串元素
    }
    

image.png

模块化语法

模块化语法 import/export

      模块化
            => 每个js文件都可以看作是一个模块
            => 每个js模块中的内容与其他模块相互独立
            => 模块间通讯
                a.js 暴露模块
                    export {变量或者方法}
                    直接在需要暴露的方法前加export
                b.js 引入模块
                    import{变量,方法} from a.js
                <script type='module'>
            => 第二种方法        
            export default function(){}         //不用加大括号,默认暴露
            export default{
                name:'jack'
            }
            import A from a.js

image.png

js的错误机制

js错误处理机制

        javascript 引擎负责执行JavaScript代码
        如果发现错误代码,js引擎抛出异常,然后异常错误没有处理异常语句,继续向上抛,直到系统处理
        系统处理方式:终止程序执行,在控制台显示异常错误信息
    
    异常错误类型
        每个异常对应一个异常对象
            syntaxError 语法错误
            ReferenceError 引用错误
            TypeError 类型错误
            RangeError 值超出有效范围时发生的错误

    自己捕获异常进行处理
    try{
        //可能发生异常的代码
    }catch(error){
        console.log(error)
    }finally{
            console.log('不管有没有出错,都会执行这个语句')
        }

image.png

image.png

image.png