Symbol
数据类型
基本数据类型
string number boolean null undefined
复杂数据类型
Object Array Date String Number Boolean ...
Symbol
- ES6新增的基本数据类型
- 引入原因:ES5的对象属性名都是字符串,容易造成属性名冲突。
使用一个他人提供的对象,
- Symbol 表示独一无二的值
- 定义
let sym = Symbol(描述符)
描述符->描述当前symbol表示什么意义
- 检查数据类型
Map和Set
set
javascript 内置对象
Set
=> 复杂数据类型
=> 作用
- 存储无序数据的集合
=> 创建
let set = new Set() //空集合
let set = new Set([1,2,{},function({},'hello')])
=> 属性和方法
size
add
delete
clear
遍历 set foreach
=> 特点
集合set中元素不能重复
=> 应用
数组去重
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)
for..of
for-of
作用: 遍历字符串,数组,Map
for-in 对象
语法: for(let v of arr){
//遍历数组 v:数组元素
}
or(let v of str){
//遍历字符串 v:字符串元素
}
模块化语法
模块化语法 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
js的错误机制
js错误处理机制
javascript 引擎负责执行JavaScript代码
如果发现错误代码,js引擎抛出异常,然后异常错误没有处理异常语句,继续向上抛,直到系统处理
系统处理方式:终止程序执行,在控制台显示异常错误信息
异常错误类型
每个异常对应一个异常对象
syntaxError 语法错误
ReferenceError 引用错误
TypeError 类型错误
RangeError 值超出有效范围时发生的错误
自己捕获异常进行处理
try{
//可能发生异常的代码
}catch(error){
console.log(error)
}finally{
console.log('不管有没有出错,都会执行这个语句')
}