初识Es6

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    介绍:

   # JS由三部分组成 :

        DOM: document Object model (文档对象模型)

        BOM: window (浏览器对象模型)

        ECMAScript 语法

        ECMAScript 2015 == ES6

        ECMAScript - 252

    

   # 介绍 

    -ECMAScript和JavaScript

    -ECMA是标准,JS是实现

      -类似HTML5是标准,IE10、Chrome、FF都是实现

      -换句话来说,将来也能有其他XXXScript来实现ECMA

    -ECMAScript简称ECMA或者ES

    -目前版本

      -低级浏览器主要支持ES 3.1

      -高级浏览器正在从ES5 过度到ES6 ES12

    # 1.什么是ES6 ?

      ECMAScript 6.0 的简称   ECMA-2015

      是JavaScript语言的下一代标准

      已经在2015年6月正式发布了。

    # 2.什么是ECMAScript ?

      ECMA是制定JS的标准化组织

      ECMAScript规定了浏览器脚本语言的标准

    # 3.ECMAScript和javascript的关系 ?

      ECMAScript是JavaScript的规格(标准)

      JavaScript是ECMAScript的一种实现

    # 4.ES6的优势

      严谨   简洁

    

    # Js 的六种数据类型

      三种基本数据类型(Number,Boolean,String)

      两种特殊数据类型(undefined,null)

      一种复合型 引用型(object)

    # JS 第七种数据类型

      Symbol 表示独一无二的值

      扩展运算符 ...rest 参数的逆运算  将一个数组转为用逗号分割的参数序列

      rest 参数 fn(...arr) 接收多余的参数转换数组

    

      

    <script>

    // # let  const块级作用域(let定义的变量 const定义的常量)

    // var 没有块级作用域 let和const拥有块级作用域

    if(true){

        var a = 100

        let b = 200

    }

    console.log(a)  //100

    console.log(b)  //报错

    

    // const 必须在声明变量的时候就赋值,不能先声明变量在赋值)

    const PI;

    PI = 3.1415  //错误

    const PI = 3.1415  //正确


 

    // # 解构赋值:从数组和对象中提取值,对变量进行赋值,这被称为解构

    // 数组

    let [a,b,c] = [1,2,3]

    

    //解构不仅可以用于数组  还可以用于对象

    let { foo,bar } = {foo:'aaa',bar:'bbb'}

    console.log(foo,bar)  // aaa bbb

    

    //函数参数

    function add([x,y]) {

        return x + y

    }

    console.log(add([1,2]))  // 3

    

    //字符串的解构赋值

    let [a,b,c,d,e] = 'hello'

    console.log(a,b,c,d,e)  // h e l l o

    

    //解构赋值使用场景

    let jsonData = {

        id:7,

        status:'ok',

        data:['要放假啦','要回家啦']

    }

    let{id,status,data:str} = jsonData

    console.log(id,status,str)  // 7 'ok' ['要放假啦','要回家啦']

    

    //交换变量

    let a = 1;

    let b = 2;

    [a,b] = [b,a]

    console.log(a,b) // 2 1


 

    // # set数据解构

    //   ES6提供了新的数据解构  set没有重复元素的类似数组的数据结构

    //   Map 键值对的双列集合

    //   JavaScript的对象(object),本质上是键值对的集合(Hash结构),但是只能用字符串当做键,这给她的使用带来了很大的限制

    //   Map也是键值对,但是键的范围不限于字符串,各种类型的值都可以当做对象 

    const s = new Set();

    const arr = [1,2,3,4,5,6,7]

    arr.forEach(function (i) {

        console.log(i)

        s.add(i)

    })

    console.log(s)  //1 2 3 4 5 6 7

    // Set删除

    const set = new Set([1,2,3]);

    set.delete(1)

    console.log(set)  // 2 3 

    // Set清除所有  没有返回值

    const set = new Set([1,2,3])

    set.clear()

    console.log(set)  // Set(0) {}

    //将set结构转为数组

    const set = new Set([1,2,3]);

    const arr = Array.from(set)

    console.log(arr)  // (3) [1,2,3]


 

    // # 函数

    //ES6允许为函数的参数设置默认值,即直接写在参数定义的后面

    //(好处:1、简洁   2、阅读人可以立刻意识到哪些参数可以省略 不用查看函数体和文档)

    function log(x,y = 'world') {

        console.log(x,y);

    }

    log('Hello'); //Hello World

    // # 箭头函数( => )

    var f = v => v

    //等同于

    var f = function (v) {

        return v

    }

    console.log(f('烧烤'))  //烧烤

    // # promise

    // Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大

    // 所谓`Promise`,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

    // 从语法上说,Promise 是一个对象,从它可以获取异步操作的消息

    // 缺点:promise的缺点:

    // 1. 无法取消`Promise`,一旦新建它就会立即执行,无法中途取消

    // 2. `promise`内部抛出的错误,不会反应到外部

    // 3. 当处于`Pending`状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)

    

    //函数封装

    function fn() {

        return new Promise((resolve,reject) => {

            setTimeout(() => {

                resolve('小龙虾')

            },1000)

        })

    }

    //函数调用

    fn().then(data => {

        console.log(data)   //小龙虾

    })

    </script>

</body>

</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值