ES6--部分新增语法

一、let和const   

(1)let:定义变量  优点:  1.let不能重复定义  2.let有块级作用域    3.let没有变量提升  

(2)const:定义常量:    只能赋值一次,值不能再修改,  

 例如:const path=require('path');  

 注:const具有和let同样的优点  

二、解构赋值  可以对数组,对象单独取值 

例如:

var obj={name:"alice",age:20,sex:"女",address:"北京海淀"}

var {name,age,address}=obj;

三、模板字符串  

用反引号来定义字符串:

即`字符串内容`${ 变量 }

例如:let  obj={name:"alice",age:20,sex:"女",address:"北京海淀"}

let {name,age,address}=obj;

let info=`我的姓名是${name},我的年龄是${age},我住 在${address}`

四、默认参数 可以给函数形参设置默认值 

例如:function sum(a=默认值,b=0,c=0,d=0) {}    

五、...用法  

作用:  1.数据列表->数组  

             适用场景:函数传参  实参是数据列表 ,形参可以用...变量名接收  

             2, 数组->数据列表  

             适用场景:将数组展开,转换成数组列表  

六、对象增强  let obj={  }  

1.如果对象的key和value同名,可简写  

          例如:name="姓名:"+name;age="age:"+age;address="地址:"+address;        

                     return { name,age,address}  

2.对象中的方法也可简写  

 let  obj={name,age:20,sex:"女",address:"北京海淀",say() {alert(this.name);alert(this.age)}}  

3.对象之间也能实现继承,通过__proto__属性实现继承

例如:

          let sonObj={    

                  __proto__:parentObj,

                  childrens:['张三','李四','王五'],

                  play() {alert(this.childrens)}

         }  

七、箭头操作符 

            (形参1,形参2,...) => { 程序体 }  

            相当于 

            function(形参1,形参2,...) {  .... }

            注意:箭头函数本身没有自己的this,他的this是箭头函数所在的环境的this      

八、class 面向对象,构造函数  prototype  定义一个类:  

            class 类名 {//相当于ES5构造函数      

                     constructor() {}      //原型上方法      

                     方法1(){}

                     方法2(){}      

                     方法3(){}      

                     方法4(){}  

            }  

子类如何继承父类  

          class  子类  extends 父类名 {

                     constructor(name,age,address) {

                              super(name,age)//必须写

                              this.address=address;

                      }      

                      子类方法1(){}       

                      子类方法2(){}  

          } 

 注意:子类没有自己的this,必须继承父类的this,父类在子类用super()表示  

九:ES6模块    

       导出:export    

                 (1)导出多个模块:export { 模块1,模块2 }     

                 例如:export { drag,rili  }    

                 (2)导出一个默认模块:     

                 export default 默认模块名  

                 注意:一个js文件只能导出一个默认模块    

       导入:import      

                 (1)导入多个模块:import { 模块1,模块2 } from "要导入的模块js"      

                 (2)导入默认模块:import 模块名 from "要导入的模块js"   

       导出默认模块和非默认模块:  格式:import 默认模块,{ 模块1,模块2 }  from './drag';   

       node导入导出模块:    

                   导出:module.exports或exports导出    

                   导入:require('导入另一个js文件')

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,858评论 0 6
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 3,668评论 2 27
  • 以下内容是我在学习和研究ES6时,对ES6的特性、重点和注意事项的提取、精练和总结,可以做为ES6特性的字典;在本...
    科研者阅读 3,152评论 2 9
  • 我这个人可能性格有缺陷,坦白说我谈了很多次恋爱,只栽过两次,一次是另一个男孩子,现在微信还有联系,异地,睡过一次,...
    你的女孩银河阅读 241评论 0 1