一、Set
set类似于数组的一种数据结构,内部按照索引排序(但是不能通过索引取值 ) 语法:let s = new Set([数据1, 数据2, 数据3]) 特点: 天生不支持重复数据
let arr = [ 1 , 2 , 2 , 3 , 4 , 4 , 4 , 3 ] ;
let s = new Set ( arr) ;
console. log ( '原数组:' , arr) ;
console. log ( 'set数据结构' , s) ;
console. log ( s[ 0 ] ) ;
1. size (类似数组的length);
let s = new Set ( [ 2 , 3 , 4 , 5 , 5 , 5 , 4 , 4 , 3 ] )
console. log ( '原始数据结构' , s) ;
console. log ( s. size) ;
2. add方法;
let s = new Set ( [ 2 , 3 , 4 , 5 , 5 , 5 , 4 , 4 , 3 ] )
console. log ( '原始数据结构' , s) ;
s. add ( 100 ) ;
s. add ( 5 ) ;
console. log ( 'add后的数据结构' , s) ;
3. has();
作用: 查询当前数据结构中是否拥有该数据; 找到的时候, 返回true, 否则返回false
let s = new Set ( [ 2 , 3 , 4 , 5 , 5 , 5 , 4 , 4 , 3 ] )
console. log ( '原始数据结构' , s) ;
s. delete ( 5 ) ;
console. log ( 'delete后的数据结构' , s) ;
5. clear()
let s = new Set ( [ 2 , 3 , 4 , 5 , 5 , 5 , 4 , 4 , 3 ] )
console. log ( '原始数据结构' , s) ;
s. clear ( ) ;
console. log ( '清空后的数据结构 ' , s) ;
6. forEach
let s = new Set ( [ 2 , 3 , 4 , 5 , 5 , 5 , 4 , 4 , 3 ] )
console. log ( '原始数据结构' , s) ;
s. forEach ( function ( item, key, origin ) {
console. log ( item, key, origin) ;
} )
二、Map
Map: ES6推出的一种数据结构, 和set一样, 也不支持重复数据 类似于对象的一种数据结构,但是map的key可以是任意类型的值 语法: var m = new Map([key, value]) 在实际开发中, 我们使用map的场景一般为想要将对象的key用于字符串之外的数据时使用
var obj = {
a : 1 ,
b : 2
}
console. log ( obj) ;
console. log ( obj. a) ;
console. log ( obj[ "a" ] ) ;
1. 语法
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
2. size;
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
console. log ( m. size) ;
3. set()
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
m. set ( 'newKey' , [ 1 , 2 , 3 , 4 , 5 ] ) ;
console. log ( 'set 新增数据后的数据结构: ' , m) ;
4. get(key)
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
console. log ( m. get ( arr) ) ;
console. log ( m. get ( 'arr123' ) ) ;
5. has(key)
作用: 查询数据结构中是否存在当前key; 存在返回一个true ,否则返回一个false
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
console. log ( m. has ( '12345' ) ) ;
console. log ( m. has ( arr) ) ;
5. delete
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
m. delete ( 'arr123' ) ;
console. log ( m) ;
6. clear
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
m. clear ( ) ;
console. log ( m) ;
8. forEach
item: 对应的value key: 对应的key origin: 对应的原始数据结构
var arr = [ 1 , 2 , 3 ] ;
var arr1 = [ 4 , 5 , 6 ] ;
var m = new Map ( [ [ [ 500 ] , [ 600 ] ] , [ arr, arr1] , [ 'arr123' , arr1] ] )
console. log ( '原始数据结构: ' , m) ;
m. forEach ( function ( item, key, origin ) {
console. log ( item, key, origin)
} )
三、对象语法的简写
key 和 value 拼写一样 并且 value 写的是一个变量 满足这两个条件的情况, 可以少写 其中一个
1. 简写一
let name = 'QF666'
const obj = {
name : name,
age : 18 ,
}
console. log ( obj) ;
const obj = {
name,
age : 18 ,
}
console. log ( obj) ;
2. 简写二
let name = 'QF666'
const obj = {
name,
age : 18 ,
fn1 : function ( ) {
console. log ( 1 )
} ,
fn2 ( ) {
console. log ( '222222' )
}
}
console. log ( obj) ;
obj. fn1 ( )
obj. fn2 ( )
四、模块化开发
/**
* 模块化开发:
* 就是将功能拆分开, 每一个功能写到一个 JS 文件中
* 后续根据实际需求, 将不同的JS文件拼接到一起
*
* 将多个逻辑分别写道多个JS文件中
* 每一个文件, 都只能使用当前文件内的变量
* 每一个文件, 就是一个独立的作用域(文件作用域)
*
* ES6 使用 模块化开发的前提
* 1. 页面必须使用服务器的形式打开
* 2. script标签行内必须配置 type="module"
*
*
* 如果想要拼接的话, 需要导入别的文件到自己文件内
* 前提: 导入的文件, 必须有导出的内容
*
* 导出: 向外部暴露出一些内容, 可以是变量, 也可以是函数
* 导入: 引入别的文件向外部暴露出的那些内容
*/
1. index.html
< script src = " ./index.js" type = " module" > </ script>
2. index.js
import headerFn from "./header.js" ;
import { obj, arr } from "./header.js" ;
import * as color from "./content.js" ;
console. log ( headerFn) ;
console. log ( obj) ;
console. log ( arr) ;
console. log ( color) ;
console. log ( color. default) ;
console. log ( color. color1) ;
console. log ( color. color2) ;
console. log ( color. color3) ;
console. log ( color. color4) ;
console. log ( color. color5) ;
3.header.js
const fn = ( ) => {
console. log ( "我是功能模块1 的 fn 函数" ) ;
} ;
export default fn;
export const obj = {
name : "QF666" ,
age : 18 ,
} ;
export const arr = [ 1 , 2 , 3 , 4 , 5 ] ;
4. content.js
export const color1 = '#asd1'
export const color2 = '#asd2'
export const color3 = '#asd3'
export const color4 = '#asd4'
export const color5 = '#asd5'
const red = '#fff'
export default red
5. footer.js