首页 > 其他 > 详细

ES6新特性

时间:2020-07-24 16:29:17      阅读:58      评论:0      收藏:0      [点我收藏+]

一  var、let和const区别

1.let和const不存在变量提升

console.log(c);   //undefined
var c=‘hello‘;

console.log(d);   //报错
let d=‘world‘;

2.let 和const 在同一个作用域下不能重复定义同一个名称

var d=1;
var d=100;
console.log(d);   //100

let f=1;
let f=100;   //若直接去掉let这个类型定义  ,直接f=100;是可以的,这个变量值可以改变  
console.log(f);   //报错

3.有着严格的作用域    var函数作用域  let和const块级作用域

function fun(){
   var n=10;
   if(true){
       var n=100;
    } 
    console.log(n);  
}
fun();  //100

function fun(){
   let m=10;
   if(true){
       let m=100;
    } 
    console.log(m);  //此时的两个m作用域范围不一致,不报错
}
fun();  //10

注明:const 声明一个只读的常量,一旦声明,常量的值就不能改变

const w=100;
w=200;  //报错
const r;  //报错,  一定初始化,不能只声明不赋值
const obj ={};
obj.name = ‘anna‘;
console.log(obj)//不报错,因为数组和对象是引用对象,它定义的是内存的地址
const arr=[];
arr.push(1)
//不报错,因为数组和对象是引用对象,它定义的是内存的地址

二、箭头函数   (简化了函数的定义)

let f = v=>v;    //变量名 = 参数 => 返回值(函数体)   参数为空或个数为两个及两个以上则应()括住参数
var f=function(v){
  return v;  
}
let f2 = (n1,n2) => n1+n2;

三、数据结构    Set  Map

set 类似于数组  成员是唯一的

map 类似于对象 

const s=new Set();
s.add(1).add(2).add(3).add(2);
console.log(s) //Set(3) {1,2,3}
//面试常见题 数组去重处理
var arr2 = [2,2,3,1,4,4,2,2,6];
var arr3 = [...new Set(arr2)]; //把数组转成set类型,自动去重,之后再加[...]扩展运算符又转成数组类型

const m = new Map();
m.set(‘name‘,‘anna‘).set(‘age‘,18);
for(let [key,value] of m){
//可以用for循环取值
}

 

ES6新特性

原文:https://www.cnblogs.com/cccaroline/p/13372170.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!