Chapter 1 ES6、模块化、打包

1. ES6基础

  1. 语言特性:
    • const, let:const为常量,一旦定义不可修改。let为块级作用域变量。
    • 函数:
      1. 箭头函数:语法糖,为匿名函数。
      2. this在箭头函数中的使用:
        js对象中的嵌套函数this会指向global对象:
        var val = "global";
        var obj = {
            val: "locale",
            getVal: function() {
                return function() {
                  console.log(this.val);
                }
            }
        }
        obj.getVal()() //输出"global"
        
        解决方案:1.为this赋值, 2.使用bind绑定上下文
        // 定义时将this值赋值给变量
        var val = "global";
        var obj = {
            val: "locale",
            getVal: function() {
                var self = this;
                return function() {
                  console.log(self.val);
                }
            }
        }
        obj.getVal()() //输出"locale"
        
        // 使用bind绑定上下文obj
        var val = "global";
        var obj = {
            val: "locale",
            getVal: function() {
                return function() {
                  console.log(this.val);
                }.bind(this);
            }
        }
        obj.getVal()() //输出"locale"
        
        解决方案3:使用箭头函数
        var val = "global";
        var obj = {
            val: "locale",
            getVal: function() {
                return () => {
                  console.log(this.val);
                }
            }
        }
        obj.getVal()() //输出"locale"
        
      3. 函数默认参数:
        ES6前默认参数需要额外指定,例如:values = values || [];
        ES6指定函数默认参数:
        function whatsUp(name = 'Love Me Like You Do', type = 'english') {
           console.log("I'm listening an " + type + " song: " + name + ", right now.");
        }
        whatsUp();
        
      4. Rest参数:函数最后一个参数前带有...,则该参数会转换为数组。
        function restFun(name, ...args) {
          console.log("list " + name + ": " + args);
        }
        restFun();
        
        注意:Rest参数是数组,arguments只是类数组对象。Rest参数可使用数组方法,例:sort、map等。尽量使用Rest参数替代arguments。
    • 展开操作符:...即展开操作符,允许一个表达式展开。
      1. 用于函数调用:将数组依次作为参数进行调用。
        ES6前使用apply
        function test(gender, name) {
          console.log((gender === "female" ? "Her" : "His") + " name is "+ name);
        }
        test.apply(null, ["female", "Elizabeth"]); //Her name is Elizabeth          
        
        ES6使用展开操作符
        test(...["female", "Elizabeth"]);  //Her name is Elizabeth
        
      2. 用于数组字面量:数组展开
        var arr1 = [1,2,3], arr2 = ["lisa", "tom"]
        var arr3 = [...arr1, ...arr2]; //[1,2,3,"lisa","tom]
        
      3. 用于对象展开
        var teecha = {age: 23, gender: "male"}
        teecha = {...teecha, nickname: "sweettea"} // {age: 23, gender: "male", nickname: "sweettea"}
        
    • 模板字符串:使用`字符。
      var song = "红尘";
      var tpl = `${song} is one of my favorite songs,
          do you wanna try? `;
      console.log(tpl); 
      

to be continue...

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,776评论 0 38
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,739评论 2 17
  • --- 学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: ...
    YFBigHeart阅读 1,049评论 0 2
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,061评论 1 10
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,145评论 0 13