ES6新特性

let 与const 关键字声明变量

let与var

1.let没有变量提升(预解析) let变量必须先定义再使用

2.不能重复声明变量

3.let具有块作用域

const与let

1.let的值可以改变,const不可以改变

2.let说明的时候可以不赋值,const必须赋值

简化函数书写

语法

()=>{}

funcation(){}

简写

1.形参只有一个,括号可以省略

(m)=>{}

m=>{}

2.函数体只有一行代码

大括号可以省略

如果只要一行代码,并且代码时return语句,大括号和return语句都可以省略

函数默认值

ES5实现方法:

m=m||100

ES6实现方式:

function fun(m=100){}

100为默认值

解构赋值

快速从对象或者数组中取出成员的一个语法方式

let{属性,属性}=变量名

{}是专门解构对象使用的

[]是专门解构数组使用的

两者不能混用

展开运算符

符号...

作用:将数组展开

应用:数组合并

对象字面量简化写法

对象属性与变量名相同,只写一个

新增类型

Symbol

数据类型
             
基本数据类型
                
string number  boolean null undefined
​
            
 复杂数据类型
                
Object Array Math  Date  String Number  Boolean  ...
​
          
Symbol 
             
- ES6新增加的基本数据类型
             
- ES6引入Symbol的原因:
               
 ES5的对象属性名都是字符串,很容易造成属性名冲突。
                
比如,使用了一个他人提供的对象,想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。
                
如果有一种机制,保证每个属性的名字都是独一无二的,这样就从根本上防止了属性名冲突。
             
- Symbol 表示独一无二的值
             
- 定义
                 let sym = Symbol(描述符)
                    描述符 => 描述当前symbol表示什么意义
             - 检查数据类型

set

 javascript内置对象
​
         Object Array Date Math ...
​
         Set 
           => 复杂数据类型
           => 作用
                存储无序数据的集合
           => 创建
                let set = new Set() //空集合
                let set = new Set([1,2,{name:'jack'}, function(){},'hello'])
​
           => 属性和方法
                size
                add
                delete
                clear
                
            =>遍历集合set forEach
​
            => 特点
                集合set中元素不能重复
​
           => 应用

 //数组去重
                 + indexof或includes
                    定义一个新数组,存储不重复元素
                    遍历原数组, 判断新数组中是否存在原数组元素,如果不存,加入新数组
                    let arr = [1,2,1,2,4]
                    let newArr = []
                    arr.forEach((item)=>{
                        if(newArr.indexOf(item) == -1){
                            newArr.push(item)
                        }
                    })
  + 双重for循环 + splice
                    for(let i = 0; i < arr.length; i++){
                        let item = arr[i]
                        for(let j = i+1; j<arr.length; j++){
                            if(item == arr[j]){
                                arr.splice(j,1)
                                j--
                            }
                        }
                    }
              
                    
                    
//数组去重
function test2(){
            // 集合set转数据Array
            let set = new Set([10,20,30])
            let arr = [...set]
            console.log(arr)
            console.log(arr[0])
        }
        // test2()
​
        function test3(){
            // let arr = [10,20,10,30,20]
            // console.log(arr)
            // let set = new Set(arr)
            // arr = [...set]
            // console.log(arr)
​
            // 代码行数越少出错概略越低
            let arr = [10,20,10,30,20]
            arr = [...new Set(arr)]
            console.log(arr)
        }

for...of

遍历数组,字符串,Map,不能遍历对象

模块化语法

import命令用于输入其他模块的功能,即导入其他模块

export命令用于规定模块的对外接口,即暴露

<script type="module">
    import{max} from './js/index.js'
</script>


export function max(){   
} 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值