es6 依赖循环_ES6常用特性

42febe9e3b5c486ba97fe69360279228.png

1.背景介绍

ES6是ECMAScript2015的常用叫法。

ES6在2015年发布,所以也被称之为 ES2015

ES2016指 2016年发布

ES2017指 2017年发布

ES2018指 2018年发布

ES2019指 2019年发布

ES2012指 20120年发布

一直以为ES6就是2016年发布的,今天查了一些资料才发现理解错了。

2.常用特性

  • let和const
    变量声明,与ES5中var的区别点就在作用域的不同
    var属于函数式作用域,存在变量提升,例如在for循环中
for(var x=0;x<5;x++){
    //
}
console.log(x)  //5

let属于块级作用域,不存在变量提升,不可重复定义,例如在for循环内部声明,外部无法 访问到

for(let x=0;x<5;x++){
    //
}
console.log(x)  //Uncaught ReferenceError: x is not defined

const属于不可修改类型,当我们定义以后,就不可再进行重新赋值修改

  • 类[class]
    在之前,我们的javascript只有对象得概念,并不存在类得概念,在ES6中新增类,它是基于原型的面向对象的语言,会继承自身所有的属性,共享给新的对象。下面我们通过构造函数与class进行对比,协助我们更好的理解 构造函数---
function Person(name,age) {
    this.name = name;
    this.age=age;
}
Person.prototype.say = function(){
    return "我的名字叫" + this.name+"今年"+this.age+"岁了";
}
var obj=new Person("laotie",88);
//通过构造函数创建对象,必须使用new 运算符
console.log(obj.say());//我的名字叫laotie今年88岁了

class ---

class Person{//定义了一个名字为Person的类
    constructor(name,age){//constructor是一个构造方法,用来接收参数
        this.name = name;//this代表的是实例对象
        this.age=age;
    }
    say(){//这是一个类的方法,注意千万不要加上function
        return "我的名字叫" + this.name+"今年"+this.age+"岁了";
    }
}
var obj=new Person("laotie",88);
console.log(obj.say());//我的名字叫laotie今年88岁了
console.log(typeof Person);//function--类实质上就是一个函数
console.log(Person===Person.prototype.constructor);//true
//类自身指向的就是构造函数。所以可以认为ES6中的类其实就是构造函数的另外一种写法!
  • 模块化

在此之前是没有模块这一说法的,我们若想使用,就需要使用外部插件进行依赖使用,在ES6中,直接提供了导出(export),引入(import)
export的用法,我们在项目中,增加一个文件,专门进行处理一些 公共逻辑,进行分批导出,可以是一个函数,一个变量,一个对象,当我们使用的时候,直接export导出,import进行接收。

  // 声明一个变量
  export const name = 'test'
  // 声明一个函数
  export const fn = ()=>{
    console.log('这是一个函数')
  }
  // 声明一个对象
  export const Obj = {
      name:'xiaoming',
      age:'22'
  }
  // 假如我们声明的这些变量在test.js 文件中,使用import 进行引入使用
  import {name,fn,Obj} from './test.js'
  console.log(name) // test
  console.log(fn()) // 这是一个函数
  console.log(Obj.name) // xiaoming 
  //还有其他的引入放式  如果你不想暴露模块当中的变量名字,可以通过as来进行操作:
  let myName="xiaoming";
  let myAge=12;
  let myfn=function(){
      return "我是"+myName+"!今年"+myAge+"岁了"
  }
  export {
      myName as name,
      myAge as age,
      myfn as fn
  }
  import {fn,age,name} from "./test.js";
  console.log(fn());//我是xiaoming!今年12岁了
  console.log(age);//12
  console.log(name);//xiaoming
  • 箭头函数
    箭头函数基本是面试必问,而且在我们的工作中也经常用到,它与之前的函数的最大区别就是this指针指向问题,箭头函数本身是没有this指针的,它的this始终指向函数创建时,不是函数执行时,若没有则为undefined
  • 模板字符串(后续增加)
  • 解构赋值(后续增加)
  • 延展操作符(后续增加)
  • Promise(后续增加)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值