【学】ECMA6的新特性1
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的更多相关文章
- 乐字节-Java8新特性之函数式接口
上一篇小乐带大家学过 Java8新特性-Lambda表达式,那什么时候可以使用Lambda?通常Lambda表达式是用在函数式接口上使用的.从Java8开始引入了函数式接口,其说明比较简单:函数式接口 ...
- 从零开始一起学习SLAM | C++新特性要不要学?
LAM,C++编程是必备技能.不过,大家在学校里学习的书本一般比较老,主要还是C++98那些老一套. 本文所谓的C++新特性是指C++11及其以后的C++14.C++17增加的新关键字和新语法特性.其 ...
- 【学亮IT手记】Java 8新特性实例介绍
java8,也称为jdk1.8,于2014.03.18日发布,它支持函数式编程,新的js引擎,新的日期API,新的Stream Api等. 我们主要讨论以下几个新特性: ①Lambda表达式. 允许把 ...
- AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现
AJ分享,必须精品 一:效果 这里实现了大多数app都会有的软件新特性的功能,用的是UICollectionViewController实现的 二:思路 这里用了UICollectionViewCon ...
- ES6 新特性
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理
RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加Header ...
- JDK各个版本的新特性jdk1.5-jdk8
JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一 ...
- html5新特性
这一篇博文不会告诉你怎么去使用html5的新特性,只会给你总结一下新特性------对于好学的人可以把这篇文章当做一个目录 对于初接触的人来说是一个导向 对于已经接触过的人来说是一个检测你掌握程度的检 ...
- fir.im Weekly - 从 iOS 10 SDK 新特性说起
从 iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 的分屏多任务特性,今年的 WWDC iOS 10 SDK ...
随机推荐
- Android 简易崩溃日志保存
仅仅做了简单的保存到了本地而已: 根据需要可以继续增加功能: 下一次启动上传到服务器: 增加应用版本,机型系统版本信息等: public class CrashSaver { public stati ...
- CSS和CSS选择器
一:CSS CSS有三种书写形式(优先级从高到低) 1)行内样式:(内联样式)直接在标签style属性中书写 2)内页样式:在本网页的style标签中书写 3)外部样式:在单独的CSS文件中书写,然后 ...
- SQL取出 所有周六 周日的日期
SQL取出 所有周六 周日的日期 create table SatSun([id] int identity(1,1),[date] datetime,[weekday] char(6)) go de ...
- 《深入浅出Node.js》第6章 理解 Buffer
@by Ruth92(转载请注明出处) 第6章 理解 Buffer ✁ 为什么需要 Buffer? 在 Node 中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中 ...
- C语言基础回顾
第一章 C语言基础 1. C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...
- WEP算法的安全性
翻译自http://www.isaac.cs.berkeley.edu/isaac/wep-faq.html WEP算法的安全性 这篇文章讲述了我们对有线等效加密协议(WEP, 802.11标准的一部 ...
- web发布 将各个文件夹输出合并到其自己的程序集 注意事项
今天在发布web网站的时候 使用了“将各个文件夹输出合并到其自己的程序集”的选项,如图: 开始在 程序集前缀(可选)处,没有填写内容. 发布到IIS后出现未加载到程序集xxxx的错误. 经过各种调试, ...
- UE4 Windows平台部署游戏到IOS 第一部分
UE4 Version 4.11.2 or 4.12.2 方法步骤: 1.申请IOS开发者账号,大概三个工作日左右激活. 2.下载iTunes 3.创建项目因为是在Windows平台,根据官方的提示只 ...
- SQL_函数
五毛叶 — SQL_函数: 如下: 1 SQL_Aggregate函数 AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个 ...
- JMS与MQ详解(有项目)
<一>m2mGW项目 1.ActiveMQ概述 企业消息软件从80年代起就存在,它不只是一种应用间消息传递风格,也是一种集成风格.因此,消息传递可以满足应用间的通知和互相操作.但是 ...