强烈推荐  阮一峰写的《ECMAScript6入门》

let和const命令

let命令:

  let用于声明变量,用法和var相似,但是不完全相同,有以下几点区别

  ① let命令只在当前作用域中有效;

  ② let不会发生‘变量提升’的现象,变量一定要声明后在使用他,否则会报错。

    问题:ES6支持ES5 但是如果发生以下情况也会报错

 var demo = 13;
if(true){
demo = "abc"; //这里也会报错
let demo;
}

    原因:只要在块级作用域内存在 let ,const 命令就会形成一个‘暂时性死区’ ,即使全局中声明了该变量也会报错

    连带结果:typeof 不是很管用啦!

if(true){
typeof x; //报错
let x;
typeof y; //undefined
}

  ③ let 不允许在相同作用域内重复声明

  ④ 块级作用域:

    ES5:只存在全局作用域和函数作用域

    ES6: 添加了块级作用域,而且还允许其嵌套使用,也可以直接使用  {块级作用域执行内容... //和立即执行函数功能一样 } 还允许在块级作用域内声明函数是不是方便的

  ⑤ 虽然let声明的变量不会被提升,但是函数的声明还是会被提升的!

const命令:

  ①添加的常量的声明命令-------声明后为只读属性不允许改变

  ②其他特点和let一样,不会提升,会形成暂时性死区,

变量的‘解构赋值’

  解构赋值:ES6允许按照一定的模式,从数组和对象中提取值,然后对变量进行赋值。

let [a,b,c] = [1,2,3] // 如果是ES5的话只能一个个的声明变量并赋值啦!

  解构赋值的本质应该就是一种匹配模式,只要等号两边的模式相同就可以进行赋值啦!如果匹配不到 就会返回undefined给变量

let [a, b, ...c] = ["a"]

a   // "a"
b // undefined
c // [] 返回空数组是 ‘...’ 的功劳哦

  还有“不完全解构”    也就是值多于变量

let [a, [b], c] = [1,[2 , 3], 4]
a //
b //2 [2,3]没有完全解构
c //

我的ES6学习之路(一)的更多相关文章

  1. es6学习笔记-async函数

    1 前情摘要 前段时间时间进行项目开发,需求安排不是很合理,导致一直高强度的加班工作,这一个月不是常说的996,简直是936,还好熬过来了.在此期间不是刚学会了es6的promise,在项目有用到pr ...

  2. web前端全栈学习之路

    web前端全栈学习之路 --- 陆续更新中 一.HTML相关 1.HTML常用标签:http://www.cnblogs.com/wyb666/p/8733699.html 2.HTML5基础: 3. ...

  3. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  4. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  5. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  6. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  7. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

  8. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  9. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

随机推荐

  1. netty 解析http请求 post

    http://blog.csdn.net/neosmith/article/details/50383548

  2. 【Python基础学习二】定义变量、判断、循环、函数基本语法

    先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...

  3. python3 黑板客爬虫闯关游戏(一)

    这是学习python爬虫练习很好的网站,强烈推荐! 地址http://www.heibanke.com/lesson/crawler_ex00/ 第一关猜数字 很简单,直接给出代码 import ur ...

  4. sharepoint OWA问题解决

    请检查DNS   检查域名解析   cmd----nslookup---输入IP或者域名(计算机名)可以看到

  5. 校园网搭建HUSTOJ记录

    上学期和网管中心的老师说过很多次--要在校园网上搭OJ,当时那边老师说要等"虚拟化搞好了以后才能搭".直到上周,终于在校园网上申请到了一个虚拟主机,4核,10G内存,100G硬盘, ...

  6. Httpsqs队列基本操作

    一,安装 ulimit -SHn 65535 wget http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz tar zx ...

  7. 初学Redis(1)——认识Redis

    Redis官网对Redis的定义是:“Redis is an open source, BSD licensed, advanced key-value cache and store”,可以看出,R ...

  8. 解决 eclipse中properties文件编码问题

    菜单——>Preferences——>General——>ContentTypes——>Text——>Java Properties File,设置Default enc ...

  9. 配置使用EF常见的一些问题及解决方案

    转自http://www.2cto.com/database/201511/449573.html 提示未注册,找不到驱动程序 No Entity Framework provider found f ...

  10. MySQL存储引擎之Myisam和Innodb总结性梳理

    Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...