ES6新特新

本文介绍了ES6中的新特性,包括let和const的块级作用域,模板字符串的使用,Symbol作为独一无二的值,解构赋值的语法,箭头函数的特点,以及Map和Set数据结构的应用,并演示了函数参数默认值的设定。
摘要由CSDN通过智能技术生成

ES6新特新

给大家分享一下ES6的新特性,若有表达错误的地方,还望大家指出来!

1.let和const

let和const区别

let声明变量,const声明常量,const在声明常量的时候必须赋值

相同点

  1. 支持块级作用域;
  2. 变量不能提升;
  3. 存在暂时性死区;
    “暂时性死区”就是在还没有声明的时候,该变量/常量是不可用
  4. 不可重复声明;

2.模板字符串

模板字符串(template string)是增强版的字符串,用反引号(``)标
识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
例如:

let str = `There are <b>${count}</b> items
				in your basket, <em>${num}</em>
				are on sale!`;

模板字符串注意事项:

  1. 模板字符串中使用变量,则需将变量名放在${}里面;
let num = 20 ;                                                                                                                                                                           
let str = `这是${num}块钱`;
console.log(str);     //这是20块钱
  1. ${}大括号中放入Javascript表达式,可以进行计算;
let str = 1;
let str2 = 2;
let sum = ${str + str2};
  1. ${}还可以调用函数;
function fn () {
    return xx;
}
`hh ${fn()} xx `
  1. 如果模板字符串中还有反引号,则需要使用反斜杠转义;
let str = `Hello \`world\``;

3.Symbol

ES6 引入的原始数据类型,表示独一无二的值。

var test1= Symbol('test');
var test2= Symbol('test');
console.log(tepeof test1);   //'symbol'
test1== test2;   //false
var test2= new Symbol('test');   //error : Symbol is not a constructor

4.解构赋值

解构赋值是对赋值运算符的扩展。它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

let [a , b , c ] =  [1 , 2 , 3 ] ;  
console.log(a,b,c);   // 1,2,3

let [a , , c ] =  [1 , 2 , 3 ] ;  
console.log(a,,c);   // 1,3

let [a , b , c ] =  [1 ,  , 3 ] ;  
console.log(a,,c);   // 1, undefine , 3

let [a , b] =  [1 , 2 , 3 ] ;  
console.log(a,b);   // 1, [2,3]

5.箭头函数

箭头函数就是使用(=>)定义函数,箭头函数没有 arguments 对象,如果要用就是用rest代替;函数体内也没有this,不可以当作构造函数,不可以使用new命令。

let fn = ( num1 , num2) => {
     return num1 + num2;
}

如果箭头函数直接返回一个对象,必须在对象外面加上括号

let info = id => ({ id: id, name: "Lilin" });

6.Map和Set

  1. Map按数组元素依次处理对象,必须有回调函数,用于保存键值对。

    与对象不同的是

  • object的键只能是字符串或ES6的symbol值,而Map可以是任何值。

  • Map对象有一个size属性,存储了键值对的个数,而object对象没有类似属性。

let arr = [123,34,564,65];
let myFun = function( value ,index ){
return value*2; // 每个元素 * 2
};
let arr2 = arr.map( myFun ); // map会生成新的数组
console.info( arr2 ); // [246, 68, 1128, 130]
console.info( arr ); // [123,34,564,65]
  1. Set可以实现数组的去重。
let arr = [1,1,2,3,3,4,4];

let mySet = new Set(arr);

let newArr = Array.from(mySet);
console.log(newArr);  //[1,2,3,4]

7.函数参数默认值

ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。

function myFun(a , b){
let n1 = a || 10 ;
let n2 = b || 20 ;
return n1 + n2 ;
}
console.info( myFun() ); // 30
console.info( myFun(2) ); // 22
console.info( myFun(2,5) ); // 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值