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. IIS7配置Gzip压缩 JS压强失败的原因

    开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...

  2. jquery省市联动,根据公司需求而写

    //author:guan //2015-05-25 //省市联动 //实用说明,页面引用如下js //<script src="../js/jquery-1.6.3.min.js&q ...

  3. input点击链接另一个页面,各种操作

    1.链接到某页<input type="button" name="Submit" value="确 定" class="b ...

  4. 使用Burpsuite抓取手机APP的HTTPS数据

    1.所需条件 · 手机已经获取root权限 · 手机已经成功安装xposed框架 · 电脑一台 2.详细步骤 2.1 在手机上面安装xposed JustTrustMe JustTrustMe是一个去 ...

  5. php实现的笛卡儿积

    之前在网上找到一个大牛写的版本(网址已经记不得了..),如下 function Descartes1() { //Cartesian product of arrays or strings or s ...

  6. PL-SQL(免安装版本)报错ORA-12154

      今天在帮同事安装PL/SQL时,在登陆的时候出现上述错误,从网上找了好多解决方法,但都没有解决问题.对于免安装版本的PL/SQL在登陆是应该先配置好路径:bin\instantclient_11_ ...

  7. Option

    在scala中Option是一个有可能包含值的容器 Option对应的特质如下 trait Option[T] { def isDefined: Boolean def get: T def getO ...

  8. c# 引用百度地图

    <script type="text/javascript"> //创建和初始化地图函数 var map = new BMap.Map("home" ...

  9. css的学习

    第一天. css 1.知道 内联 内部 外部 的优先权 2.css的语法 3.id 选择器 以及 类选择器 和属性选择器 4.对图片  长 宽 的编辑  调整图片 5.通过内部 对整个页面 文字  颜 ...

  10. Pocscan搭建详解

    0x01 关于Pocscan Pocscan是一款开源 Poc 调用框架,可轻松调用Pocsuite,Tangscan,Beebeeto,Knowsec老版本POC 按照官方规范编写的 Poc对目标域 ...