ES6 常用语法 一

ES6 是什么

  • ECMAScript 2015 于2015年6月正式发布
  • 可以使用babel语法转换器,支持低端浏览器
  • 流行的库都基于ES6构建,React默认使用ES6开发

ES6 有啥

  • 块级作用域、字符串、函数
    • 作用域
      • 定义变量使用 let 替代 var
      • const 定义不可修改的变量
      • 作用域和{}
       {
           var name1 = 'cjw';
           let name2 = 'cjw';
       }
          console.log(name1) //cjw
          console.log(name2) //name2 is not defined
      
    • 字符串
      • 模版字符出纳
        • 使用反引号
        • 多行字符串
        • 告别+拼接字符串
           let name = 'chenjiawei'
           let age = '18'
           console.log('My name is ' +name+' ,I am ' + age + ' old') 
           console.log(`My name is ${name} ,I am ${age} old `)     
        
    • 函数拓展
      • 参数默认值

        //  曾经的写法
        function(a,b){
            var a = a || 12
            var b = b || 55
            return a+b;
        }
        // ES6
        function(a=12,b=15){
            return a+b;
        }
        
      • 箭头函数

          x => x*x 
        
          x=>{
            if(x>0){
              return x * x;
             }
            else {
              return - x * x;
            }
          }
        

        箭头函数和匿名函数有个区别:
        箭头函数的this是词法作用域,由上下文确定,也就是指向外层调用者。匿名函数的this最终指向的是调用它的对象。
        由于this在箭头函数中按照词法作用域绑定,所以用call() 和 apply() 无法对this进行绑定。
        箭头函数不能用作构造器,和 new一起用会抛出错误。
        箭头函数没有prototype属性。

      • 展开运算符

        function fn(a,b){
          console.log(a,b);
        }
        let arr = ['hello','world'];
        fn.apply(null,arr) //曾经的方法
        fn(...arr) //利用展开运算符
        
  • 对象扩展、解构
    • Object拓展

      • Object.keys、values、entries
        /* Array 对象 */ 
        let arr = ["a", "b", "c"];
        console.log(Object.keys(arr)); // ["0", "1", "2"]
        console.log(Object.values(arr)); // ["a", "b", "c"]
        console.log(Object.entries(arr)); // [["0", "a"], ["1", "b"], ["2", "c"]]
        
        /* Object 对象 */ 
        let obj = { foo: "bar", baz: 42 };
        console.log(Object.keys(obj )); // ["foo", "baz"]
        console.log(Object.values(obj )); // ["bar", 42]
        console.log(Object.entries(obj )); // [["foo", "bar"], ["baz", 42]]
        
      • 对象方法简写,计算属性
        let name = 'cjw'
        const obj = {
          name,
          [name]:'cjw',
          hello:function(){
          },
          hello1(){
          }
        }
        console.log(obj) //{name: "cjw", cjw: "cjw", hello: ƒ, hello1: ƒ}
        
      • 展开运算符(不是ES6标准,但是babel支持)
    • 解构赋值
      函数可以多返回值

      • 数组解构
      • 对象解构
      var [a, b, c] = [1, 2, 3];
      
      // 返回一个数组
      function example() {
        return [1, 2, 3];
      }
      
      var [a, b, c] = example();
      
      // 返回一个对象
      function example() {
        return {
          foo: 1,
          bar: 2
        };
      }
      
      var {foo, bar} = example();
      
  • 类、模块化等
      • prototype的语法糖
      • Extends继承
      • Constructor构造函数
       class Rectangle {
        // constructor
        constructor(height, width) {
          this.height = height;
          this.width = width;
        }
        // Getter
        get area() {
          return this.calcArea()
        }
        // Method
        calcArea() {
          return this.height * this.width;
        }
      }
      const square = new Rectangle(10, 10);
      
      console.log(square.area);
      // 100
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • ES6语法跟babel: 一、首先我们来解释一下什么是ES? ES的全称是ECMAScript。1996 11 ,...
    Mooya_阅读 975评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,114评论 0 13
  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 989评论 0 7
  • ES6阮一峰老师的书已经出到第三版了,从中受益匪浅,第二版读了三遍,在项目中常用到的一些语法和方法做些总结 字符串...
    任雨丶阅读 15,548评论 0 11
  • 一、定义 Java泛型是JDK5中引入的新特性,提供在编译时类型安全监测机制,本质是参数化类型(即所操作的数据类型...
    MrTrying阅读 1,177评论 0 2