我的ES6学习之路(一)
强烈推荐 阮一峰写的《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学习之路(一)的更多相关文章
- es6学习笔记-async函数
1 前情摘要 前段时间时间进行项目开发,需求安排不是很合理,导致一直高强度的加班工作,这一个月不是常说的996,简直是936,还好熬过来了.在此期间不是刚学会了es6的promise,在项目有用到pr ...
- web前端全栈学习之路
web前端全栈学习之路 --- 陆续更新中 一.HTML相关 1.HTML常用标签:http://www.cnblogs.com/wyb666/p/8733699.html 2.HTML5基础: 3. ...
- jQuery学习之路(1)-选择器
▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- [精品书单] C#/.NET 学习之路——从入门到放弃
C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
随机推荐
- netty 解析http请求 post
http://blog.csdn.net/neosmith/article/details/50383548
- 【Python基础学习二】定义变量、判断、循环、函数基本语法
先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...
- python3 黑板客爬虫闯关游戏(一)
这是学习python爬虫练习很好的网站,强烈推荐! 地址http://www.heibanke.com/lesson/crawler_ex00/ 第一关猜数字 很简单,直接给出代码 import ur ...
- sharepoint OWA问题解决
请检查DNS 检查域名解析 cmd----nslookup---输入IP或者域名(计算机名)可以看到
- 校园网搭建HUSTOJ记录
上学期和网管中心的老师说过很多次--要在校园网上搭OJ,当时那边老师说要等"虚拟化搞好了以后才能搭".直到上周,终于在校园网上申请到了一个虚拟主机,4核,10G内存,100G硬盘, ...
- Httpsqs队列基本操作
一,安装 ulimit -SHn 65535 wget http://httpsqs.googlecode.com/files/libevent-2.0.12-stable.tar.gz tar zx ...
- 初学Redis(1)——认识Redis
Redis官网对Redis的定义是:“Redis is an open source, BSD licensed, advanced key-value cache and store”,可以看出,R ...
- 解决 eclipse中properties文件编码问题
菜单——>Preferences——>General——>ContentTypes——>Text——>Java Properties File,设置Default enc ...
- 配置使用EF常见的一些问题及解决方案
转自http://www.2cto.com/database/201511/449573.html 提示未注册,找不到驱动程序 No Entity Framework provider found f ...
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...