为了账号安全,请及时绑定邮箱和手机立即绑定

ES6快速入门

快乐动起来呀 Web前端工程师
难度初级
时长 1小时25分
学习人数
综合评分9.27
106人评价 查看评价
9.5 内容实用
9.1 简洁易懂
9.2 逻辑清晰
  • {
      // ES5
      var Person = {
        name: 'es5',
        age: 15
      };
    
      Object.defineProperty(Person, 'sex', {
        writable: false,
        value: 'male'
      });
    
      console.table({name: Person.name, age: Person.age, sex: Person.sex});
      Person.name = 'es5-cname';
      console.table({name: Person.name, age: Person.age, sex: Person.sex});
      try {
        Person.sex = 'female';
        console.table({name: Person.name, age: Person.age, sex: Person.sex});
      } catch (e) {
        console.log(e);
      }
    }
    {
      // ES6
      let Person = {
        name: 'es6',
        sex: 'male',
        age: 15
      };
    
      let person = new Proxy(Person, {
        get(target, key) {
          return target[key]
        },
        set(target,key,value){
          if(key!=='sex'){
            target[key]=value;
          }
        }
      });
    
      console.table({
        name:person.name,
        sex:person.sex,
        age:person.age
      });
    
      try {
        person.sex='female';
      } catch (e) {
        console.log(e);
      } finally {
    
      }
    
    }


    查看全部
    0 采集 收起 来源:对象代理

    2020-01-21

  • {
      // ES3,ES5 可变参数
      function f() {
        var a = Array.prototype.slice.call(arguments);
        var sum = 0;
        a.forEach(function(item) {
          sum += item * 1;
        })
        return sum
      }
      console.log(f(1, 2, 3, 6));
    }
    {
      // ES6 可变参数
      function f(...a) {
        var sum = 0;
        a.forEach(item => {
          sum += item * 1
        });
        return sum
      }
      console.log(f(1, 2, 3, 6));
    }


    查看全部
    0 采集 收起 来源:默认参数

    2020-01-21

  • {
      // ES6 默认参数
      function f(x, y = 7, z = 42) {
        return x + y + z
      }
      console.log(f(1, 3));
    }


    查看全部
    0 采集 收起 来源:默认参数

    2020-01-21

  • {
      // ES3,ES5
      var evens = [1, 2, 3, 4, 5];
      var odds = evens.map(function(v) {
        return v + 1
      });
      console.log(evens, odds);
    };
    {
      // ES6
      let evens = [1, 2, 3, 4, 5];
      let odds = evens.map(v => v + 1);
      console.log(evens, odds);
    } {
      // ES3,ES5
      var factory = function() {
        this.a = 'a';
        this.b = 'b';
        this.c = {
          a: 'a+',
          b: function() {
            return this.a
          }
        }
      }
    
      console.log(new factory().c.b());
    };
    {
      // ES3,ES5
      var factory = function() {
        this.a = 'a';
        this.b = 'b';
        this.c = {
          a: 'a+',
          b: function() {
            return this.a
          }
        }
      }
    
      console.log(new factory().c.b());
    };
    
    {
      var factory = function() {
        this.a = 'a';
        this.b = 'b';
        this.c = {
          a: 'a+',
          b: () => {
            return this.a
          }
        }
      }
      console.log(new factory().c.b());
    }


    查看全部
    0 采集 收起 来源:箭头函数

    2020-01-21

  • ES6箭头函数语法:当{}中的表达式只有一个时,可以省略{}

    查看全部
    0 采集 收起 来源:箭头函数

    2020-01-21

  • 立即执行函数

    ;((function() {
        const foo = function() {
            return 1
        }
        console.log("foo()===1", foo() === 1)
        ;((function() {
            const foo = function() {
                return 2
            }
            console.log("foo()===2", foo() === 2)
        })())
    })())


    ES6中使用{}指定作用域

    {
        function foo() {
            return 1
        }
    
        console.log("foo()===1", foo() === 1)
        {
            function foo() {
                return 2
            }
    
            console.log("foo()===2", foo() === 2)
        }
        console.log("foo()===1", foo() === 1)
    }


    查看全部
    0 采集 收起 来源:作用域

    2020-01-21

  • // ES5 中作用域
    const callbacks = []
    for (var i = 0; i <= 2; i++) {
        callbacks[i] = function() {
            return i * 2
        }
    }
    
    console.table([
        callbacks[0](),
        callbacks[1](),
        callbacks[2](),
    ])


    const callbacks2 = []
    for (let j = 0; j <= 2; j++) {
        callbacks2[j] = function() {
            return j * 2
        }
    }
    
    console.table([
        callbacks2[0](),
        callbacks2[1](),
        callbacks2[2](),
    ])


    查看全部
    0 采集 收起 来源:作用域

    2020-01-21

  • touch表示创建文件。

    // ES5 中常量的写法
    Object.defineProperty(window, "PI2", {
        value: 3.1415926,
        writable: false,
    })


    // ES6 的常量写法
    const PI = 3.1415926
    console.log(PI)


    查看全部
    0 采集 收起 来源:常量

    2020-01-21

  • 使用npm或cnpm命令下载源码

    查看全部
    0 采集 收起 来源:环境搭建

    2020-01-21

  • ES6入门环境准备

    查看全部
    0 采集 收起 来源:环境搭建

    2020-01-21

  • ES6入门前置知识包括git、webpack和js.

    查看全部
    0 采集 收起 来源:环境搭建

    2020-01-21

  • 查看全部
    2 采集 收起 来源:环境搭建

    2020-01-19

  • npm start 出错如下:

    http://img1.sycdn.imooc.com//5e028f8c0001e87921720990.jpg提示:Error: listen EADDRINUSE: address already in use 127.0.0.1:9000,这说明9000端口被占用,查看一下是什么进程在使用:lsof -i tcp:9000,发现是php-fpm,结束php进程即可:brew services stop php@7.2

    再运行 `npm start`,成功:

    http://img1.sycdn.imooc.com//5e02919d0001564721240244.jpghttp://img1.sycdn.imooc.com//5e0291b80001ded807600318.jpg

    查看全部
    1 采集 收起 来源:环境搭建

    2019-12-25

  • npm i出错如下:

    `node-pre-gyp ERR! Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.1.3/fse-v1.1.3-node-v64-darwin-x64.tar.gz`

    经过查阅,发现是由于node.js版本太新导致,我默认版本为10,切换为8来安装就可以了。老师也不说一下自己的node.js版本,这基础课一点都不基础。

    查看全部
    0 采集 收起 来源:环境搭建

    2019-12-24

  • 对象操作:

    es3:通过使用闭包在函数作用域内创建api的方法(get,set),用if判断是否可修改

    es5:直接创建一个对象,赋值修改,用Object.defineProperty()设置是否可读

    es6原生语法代理 : 

    new Proxy() ;  object 为 用户访问操作的代理对象,而不是原始对象 //ES6  

     let Person = {  //创建一对象     

    name: 'es6',     

    sex: 'male',     

    age: 15  

     };   

    let person = new Proxy(Person, {  //Person为代理的对象    

     get(target, key) {   //get为读取操作,参数target为代理对象的数据,key是你要读的哪个属性。  return target[key]     

    },     

    set(target,key,value){ //set为设置修改操作,value为属性值      

     if(key!=='sex'){         target[key]=value;       }    

     }  

     });

    访问:person.age

    修改:person.age=12

    set方法中可以写逻辑,不影响业务逻辑


    查看全部
    0 采集 收起 来源:对象代理

    2019-12-16

举报

0/150
提交
取消
课程须知
了解JS基础知识
老师告诉你能学到什么?
1、通过对比知道为什么要学习ES6 2、快速入门ES6的学习 3、掌握ES3、ES5、ES6的联系和区别 4、学会快速构建ES6的编译环境

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!