简单的ES6新特性

本文介绍了ECMAScript6(ES6)的关键特性,包括let和const的使用,它们解决了变量作用域和不可变性的问题。此外,还讲解了模板字符串、函数默认参数、箭头函数、对象简写、对象解构、对象传播操作符、数组的map和reduce方法,这些都是现代JavaScript开发的重要组成部分。学习和掌握这些特性对于前端开发者至关重要。
摘要由CSDN通过智能技术生成

简单的ES6新特性

  1. 简介

ES6,全称ECMAScript 6.0,是javaScript的下一个版本标准,发布时间为2015年6月。其出现主要解决了javascript中不足的部分,比如javaScript中没有类这个概念,还有变量的常量的定义不清楚等问题。现如今大部分的浏览器都支持ES6的部分特性。如果你作为一个前端开发者,学习和使用ES6是必要的。

发展历史

javaScript的创造者:网景公司(Netscape)

1997年,js被提交给ECMA标准化组织,称为国际化标准,并命名为ECMAScript。

  • 1997 年 ECMAScript 1.0 诞生。
  • 1998 年 6 月 ECMAScript 2.0 诞生,包含一些小的更改,用于同步独立的 ISO 国际标准。
  • 1999 年 12 月 ECMAScript 3.0诞生,它是一个巨大的成功,在业界得到了广泛的支持,它奠定了 JS 的基本语法,被其后版本完全继承。直到今天,我们一开始学习 JS ,其实就是在学 3.0 版的语法。
  • 2000 年的 ECMAScript 4.0 是当下 ES6 的前身,但由于这个版本太过激烈,对 ES 3 做了彻底升级,所以暂时被"和谐"了。
  • 2009 年 12 月,ECMAScript 5.0 版正式发布。ECMA 专家组预计 ECMAScript 的第五个版本会在 2013 年中期到 2018 年作为主流的开发标准。2011年6月,ES 5.1 版发布,并且成为 ISO 国际标准。
  • 2013 年,ES6 草案冻结,不再添加新的功能,新的功能将被放到 ES7 中;2015年6月, ES6 正式通过,成为国际标准。
  1. let和const

在es5中,我们我们对常量和变量的声明都是用var关键字

在es6中

  • 变量声明关键字:let
  • 常量声明关键字:const

let,const和var的区别

let:

  • 用于声明变量,声明的变量只在代码块内有效

    {
      let a = 0;
    }
    a   // 报错 ReferenceError: a is not defined
    
  • 在for,当计数器是变量只在for中有效。(适合声明计数器)

  • 不能重复声明变量

    let a = 1;
    let a = 2;
    a  // Identifier 'a' has already been declared
    
  • 不存在变量提升

    console.log(a);  //ReferenceError: a is not defined
    let a = "apple";
    

const:

  • 用于声明变量,声明变量之后变量的值不能改变

var:

  • 声明的变量全局有效

    {
      var b = 1;
    }
    b  // 1
    
  • 能够重复声明变量

    var b = 3;
    var b = 4;
    b  // 4
    
  • 存在变量提升

    console.log(b);  //undefined
    var b = "banana";
    
  1. 模板字符串
let name = "ariverh";
let age = 22
let info = `my name is ${name}, I am ${age} years old`
//my name is ariverh,I am 22 years old
  1. 函数的默认参数
  • 使用函数的默认参数时,参数名不能重名

  • 当未传递参数或者参数未undefined,会使用默认参数

    function sum(a=1,b=2){
     	return a+b;
    }
    
    sum() //3
    sum(2,2)//4
    sum(4) //6
    
  1. 箭头函数

在javascript中的箭头函数和java中的Lamda表达式有相似之处。

- 正常函数
function sum(a,b){
	return a+b;
}
var sum = function(a,b){
	return a+b;
}

- 箭头函数 多参数多循环体
var sum1 = (a,b) =>{
	var c = a+b;
	console.log(c);
	return c;
};

- 箭头函数 单参数多循环体
var sum2 = a =>{
	a = a+1;
	console.log(a);
	return a;
};

- 箭头函数 单参数单循环体
var sum3 = a => a+1;

- 箭头函数 多参数单循环体
var sum4 = (a,b)=>a+b;
java
- 箭头函数 无参数 单循环体
var sum5 = ()=>1+2;
  1. 对象的简写
- 传统对象
var name = "ariverh"
var age = 22
var person = {
    age: age,
    name: name,
    say: ()=> console.log(`my name is ${name},I am ${age} years old`) //学以致用
}

- es6 对象简写    在对象简写中不能使用箭头函数 
var name = "ariverh"
var age = 22
var person1 = {
    age,
    name,
    say(){
        console.log(`my name is ${name},I am ${age} years old`) 
    }
}

传统对象:

在这里插入图片描述

es6对象:

在这里插入图片描述

  1. 对象解构
let person1 = {
    age: 22,
    name: "ariverh",
    say(){
        console.log(`my name is ${name},I am ${age} years old`)
    }  //学以致用
};
let {age,name,say} = person1;
console.log(age);
say();
  1. 对象传播操作符
let person1 = {
    age: 22,
    name: "ariverh",
    say(){
        console.log(`my name is ${name},I am ${this.age} years old`)
    }  //学以致用
};
let {age,...person2} = person1;
console.log(age);
console.log(person2);
  1. 数组map
let persons =[{age:22,name:"tom"},{age:21,name:"jeny"},{age:10,name:"jack"}];
let persons1 = persons.map(function(ele){
    ele.age = ele.age +1;
    return ele;
});

console.log(persons1);
//[
//  { age: 23, name: 'tom' }, 
//  { age: 22, name: 'jeny' },
//  { age: 11, name: 'jack' } 
//]
  1. 数组reduce
let arr = [1,2,3,4,5,6,7,8,9,10]
let result = arr.reduce(function(a,b){
	return a+b;
});
console.log(result);
//55

-过程:
a = 1, b = 2 ,[3,3,4,5,6,7,8,9,10]
a = 3, b = 3 ,[6,4,5,6,7,8,9,10]
....
result = 55
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值