ES6新特性

46 阅读2分钟

Symbol

ES6新增加的基本数据类型

ES6引入Symbol的原因:ES5的对象属性名都是字符串,很容易造成属性名冲突。 比如:使用了一个他人提供的对象,想为这个对象添加新的方法,新方法的名字就可能与现有的方法产生冲突。如果有一种机制,保证每个属性名字都是独一无二的,这样就从根本上防止了属性名冲突。

Symbol表示独一无二的值

定义

    let sym = Symbol(描述符)
    描述符 => 描述当前symbol表示什么意义
  • 检查数据类型

Set

复杂数据类型

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

创建

let set = new Set()
let set = new Set([1,2,{name:'jack'},function(){},'hello'])

属性和方法

size
add
delete
clear

遍历集合

 set forEach

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

Map

复杂数据类型

作用: 是一个数据集合,很类似于对象Object的数据集合,Map存储的数据也是key/value形式,key可以是任意类型

创建

let map = new Map()
let map = new Map([[name:'jack'],[100,18] ])

属性和方法

size
set
get
delete
clear
has

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

for-of

作用:

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

语法:

        for(let v of arr){
            //遍历数组 v:数组元素
        }
        let str = 'hellworld'
        for(let v of str){
            //v 字符
        }
        

模块化语法

import / export

模块化

=> 每个js文件都可以看作一个模块 xx.js

=> 每个js模块中的内容与其它模块相互独立

=> 模块间通讯

              第一种方式
                   a.js 暴露模块
                    export 变量或方法名
                    b.js 引入模块
                    import {变量,方法} from './a.js'
                    index.html
                   <script type="module">
                        import {变量,方法} from './a.js'
                    </script>

               第二方法

                 export default {
                     name:'jack'
                 }

                 import A from 'c.js'

js错误处理机制

javascript引擎负责执行javascript代码,

如果发现错误代码,抛出异常错误, 如果异常错误没有处理语句,继续向上抛,至到系统处理

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

异常错误类型

  • 每个异常对应一个异常对象
  • SyntaxError 语法错误
  • ReferenceError 引用错误
  • TypeError 类型错误
  • RangeError 值超出有效范围时发生的错误

自己捕获异常进行处理

       try{
           // 可能发生异常的代码
       }catch(error){
           console.log(error)
       }