es6基本语法

const与let不能提升变量
直接看例子

let a=40;//let可以重新赋值
console.log(a);
a=66
const b=44;
console.log(b);

let作用域只限于当前代码块

{
    let a=38
}
console.log(a);//所以会报错
{
    let a=33
    console.log(a);//33
}
在作用域里的变量也不会被提升
{
   console.log(a);//报错
    let a=22;//
    let a='chdbhd';

}
{
    let a=22;//报错
    let a='chdbhd';

}

以前我们使用的var 会考虑到‘闭包’
例如

var lis=document.querySelectorAll('ul li');

for(var i=0;i<lis.length;i++){
(
    function(i){
        lis[i].onclick=function(){
            console.log(i);//这样会点击到每一项
        }
    }
)(i)
}

然而es6中的let直接跳过闭包,也就是直接跳过当前函数作用域。

let lis=document.querySelectorAll('ul li');
//直接跳过作用域

for(let i=0;i<lis.length;i++){
lis[i].onclick=function(){
   console.log(i); //点击了每一项
   
}
}

从而看出let比var更高级些
但是相对于对象来说的话,它可以在当前作用域的外面打印到;在对象里面

{
    console.log(obj.name); //报错

    const obj = {
        name:"李三"
     }

    console.log(obj.name);//李三
    
    obj.name = "远方";
}

这里可以看出const作为对象时也不能变量提升

{

    const obj = {
        name:"李三"
     }
    console.log(obj.name); //李三

    console.log(obj.name);//李三,访问不到下面的
    
    obj.name = "远方";
    console.log(obj.name);//远方
}

结构赋值
在es5中我们进行相关赋值的时候,
只能一个一个进行赋值,使用逗号的进行赋值也只是最右边的赋值 才生效。
在es6中出现了赋值解构,分两种情况一个是数组解构,一个是对象解构赋值。

用于对象的拼接

let obj1={
name:'',
age:56
}
let obj2={
    name:'vdgcv',
    sex:11
}
let obj={}
Object.assign(obj,obj1,obj2);
console.log(obj);//{name: "vdgcv", age: 56, sex: 11}

//数组的扩展
Array.from
Array.of

let lis = document.querySelectorAll("li")
   console.log(Array.isArray(lis));  //false
    Array.from(list);  //将非数组lis转为数组
    console.log(Array.isArray(Array.from(lis))); //true检测数组
    console.log(Array.from(lis)); [li, li, li, li, li]
   console.log(Array.of(lis));

总结下var const let的区别:

1,var 声明的变量属于函数组作用域,let,const声明的变量属于块级作用域,
2,var存在变量提升现象,而let和const没有;
3,var变量可以重复声明,而在同一个作用域,let const变量都不能重复声明,const变量不能修改,

结构赋值
ES6允许按照一定的模式从数组和对象中提取值,对变量进行赋值,这被称为解构。
(1)、基本用法
以前的定义方法let name = "李四";let age = 20;let sex = "女"
新的定义方法let [name,age,sex] = ["李四",20,"女"]; //console.log(name)-->李四
(2)、对象的解构赋值
前面的key值和后面的key值相对应的

  let {name,age,friends} = {name:"zhangsan",age:12,friends:["lulu","女"]};
  console.log(name); //zhangsan

(3)、嵌套数组的解构赋值

//只要一一对应就可以let [a1,[a2,a3,[a4,a5]]] = [1,[2,3,[4,5]]];
console.log(a1,a2,a3,a4,a5);  //1,2,3,4,5

4)、字符串的解构赋值

let [a,b,c,d,e] = "我是中国人";console.log(a);   //我console.log(b);   //是console.log(c);   //中console.log(d);   //国console.log(e);   //人

(5)、空缺变量

let [a,b,,e]=['a','b',[1,2],4]

(6)、多余变量

let [a,b,,e,f]=['a','b',[3,4],5]
//注意:因为字符串有构造器,所以可以解析出来。

数据集合: set
1 ,特点
① 类似于数组,但没有重复的元素(唯一的);
② 开发中用于去除重复数据;
③ key和value都是相等的;

let set = new Set(['zhangsan','zhangsan','lisi','wangwu']);console.log(set);  // zhangsan ,lisi ,wangwu

2 ,一个属性
let set = new Set(['zhangsan','zhangsan','lisi','wangwu']);console.log(set.size); // 3
3, 四个方法
① add方法:

vlet set = new Set(["zhangsan","lisi"]);
console.log(set); // {"zhangsan", "lisi"}set.add("wangwu");
console.log(set); // {"zhangsan", "lisi", "wangwu"}

②delete方法:

let set = new Set(["zhangsan","lisi"]);//直接将删除的值传进去即可set.delete("lisi");
console.log(set); //{"zhangsan"}

③has方法:

let set = new Set(["zhangsan","lisi"]);
console.log(set.has("lisi"));  //true

④clear方法:

let set = new Set(["zhangsan","lisi"]);set.clear(); // 此时set为空了

`~`数据集合:map
(1)、特点
① 类似于对象,本质上是键值对的集合;
② "键"不局限于字符串,各种类型的值(包括对象)都可以当做键;
③ 对象"字符串——值",Map"值——值",是一种更完善的hash结构实现;

  //创建map
  let obj1 = {a:1}, obj2 ={b:2};
  const map = new Map([
    ['name','张雪'],
    ["age",21],
    ["sex",'男'],
    [obj1,"haha"],
    [obj2,'wowo']
  ]);
  console.log(map);   //{"name" => "张雪", "age" => 21, "sex" => "男", Object => "haha",Object => "wowo"}

(2)、一个属性

const map = new Map([
    ['name','张雪'],
    ["age",21],
    ["age",21],
    ["sex",'男']
]);console.log(map.size); //3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350