ECMA6的新特性1

let特性:

1、不允许重复声明

2、没有预解析

3、块级作用域

一对{}包括的区域称为代码块

块级作用域指一个变量或者函数只在该区域才起作用。

例1:

console.log(a);//会报错,a is not defined
let a = 3; //原来如果用var声明到调用后,不会报错,而是undefined,说明用var预解析了,但是用let不会

例2:

//如果申明i的时候用原来的var,则每次定时器打出来的都是i,之前解决的方案就是利用函数的自执行,将每次的i传入函数中使用,但是如果用let申明i,就解决了问题,打出了0-9的数字。同样,也可以用在选项卡的例子中
for(let i=0; i<10; i++){
setTimeout(function(){
console.log(i)
},50);
}

const申明常量

在定义之后值是固定不变的,即为常量

常量的值不能修改,但是如果常量保存的是一个对象,那么对象的属性是可以被修改的。

可以理解为,对象本身是在堆内存中,它的值本身是可以修改的,但是它的引用地址在栈内存中,一旦用const申明后,引用地址是不能改的

const a = 1;
a = 2;
console.log(a);
//会报错:TypeError: Assignment to constant variable.
const a = {
name:'leo'
};
a.name = 'momo';
console.log(a.name);//修改对象本身内部的值是可以的

解构赋值:Destructuring ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

数组的解构赋值:按照对应的顺序解构。

var arr = [1,2,3];
var [a,b,c] = arr;
console.log(a,b,c)//可以解析出1,2,3,相当于a,b,c的值都已经赋上,只要结构对应没有问题
var obj = {
foo:function(){
},
o:{
},
arr:[],
str:'abc'
}
var {foo,arr,str,o} = obj; //并没有按照原有obj的顺序,但是同样可以赋值,只要对象中的Key的名字能对应找到即可
console.log(foo,arr,str,o);
//如果var {foo1,arr} = obj;因为原来obj中没有foo1这个键,会出现undefined,所以如果要对对象解构赋值,需要和原对象的Key名称一致,顺序无所谓
//还可以做值的交换,原来要用到中间临时变量,但是现在可以这么做
var y = 1;
var x = 2;
var [x,y] = [y,x];
console.log(x,y); //这里x和y的值已经交换了

【学】ECMA6的新特性1的更多相关文章

  1. 乐字节-Java8新特性之函数式接口

    上一篇小乐带大家学过 Java8新特性-Lambda表达式,那什么时候可以使用Lambda?通常Lambda表达式是用在函数式接口上使用的.从Java8开始引入了函数式接口,其说明比较简单:函数式接口 ...

  2. 从零开始一起学习SLAM | C++新特性要不要学?

    LAM,C++编程是必备技能.不过,大家在学校里学习的书本一般比较老,主要还是C++98那些老一套. 本文所谓的C++新特性是指C++11及其以后的C++14.C++17增加的新关键字和新语法特性.其 ...

  3. 【学亮IT手记】Java 8新特性实例介绍

    java8,也称为jdk1.8,于2014.03.18日发布,它支持函数式编程,新的js引擎,新的日期API,新的Stream Api等. 我们主要讨论以下几个新特性: ①Lambda表达式. 允许把 ...

  4. AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现

    AJ分享,必须精品 一:效果 这里实现了大多数app都会有的软件新特性的功能,用的是UICollectionViewController实现的 二:思路 这里用了UICollectionViewCon ...

  5. ES6 新特性

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...

  6. Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理

    RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加Header ...

  7. JDK各个版本的新特性jdk1.5-jdk8

    JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...

  8. html5新特性

    这一篇博文不会告诉你怎么去使用html5的新特性,只会给你总结一下新特性------对于好学的人可以把这篇文章当做一个目录 对于初接触的人来说是一个导向 对于已经接触过的人来说是一个检测你掌握程度的检 ...

  9. fir.im Weekly - 从 iOS 10 SDK 新特性说起

    从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...

随机推荐

  1. [驱动开发] struct _LDR_DATA_TABLE_ENTRY

    @Windows XP Professional Service Pack 3 (x86) (5.1, Build 2600) lkd> dt -b _LDR_DATA_TABLE_ENTRY ...

  2. Objective C运行时(runtime)

    #import <objc/runtime.h> void setBeingRemoved(id __self, SEL _cmd) { NSLog(@"------------ ...

  3. sql server 2008中清除数据库日志的sql语句

    第一步: Use  数据库名 Select NAME,size From sys.database_files 将“数据库名”改为需要清除日志的数据库名字,点击“执行”查询出需要清除的日志名称:**_ ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. PHP类和对象之间的关系

    类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...

  6. 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息

    群号511751143 海洋女神installshield群

  7. chrome中怎么避免最小字体只能为12px

    在chrome下,fontSize的像素>=12px,因此不能通过调整html.fontSize=10px来定位rem. 但是我们可以通过设置html{font-size:625%;},p{fo ...

  8. 集合视图 UICollectionView

    什么是UICollectionView UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最 ...

  9. 初学JAVA的 感想 尹鑫磊

    开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并 ...

  10. MatLab/HR