我的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配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
随机推荐
- 提高PHP代码质量的36个技巧
1.不要使用相对路径 常常会看到: require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. 因此会 ...
- 关于 JSONP跨域示例
1.脚本文件Jsonp,代码如下: $(function () { TestJsonP(); function TestJsonP() { var xhrurl = 'http://localhost ...
- 用 nssm 把 Nginx 安装成 Windows 服务方法
总之:用 nssm 比 srvany.exe 简便多了.1. 下载nginx windows版本:http://nginx.org/ 2. 下载 nssm :http://nssm.cc/3. 安装N ...
- XmlException: 名称不能以“<”字符(十六进制值 0x3C)开头
svn 版本冲突引起的: 产看config 文件里面的内容是否冲突,这个问题可能和代码无关
- 解决IE8 内置JSON.stringify,中文变unicode的问题
转自:http://my.oschina.net/u/919074/blog/191131 项目中出现在IE下出现把json对象转为json串中文变成unicode的问题,最后经过排查,发现是IE8内 ...
- C++ explicit关键字详解
本文系转载,原文链接:http://www.cnblogs.com/ymy124/p/3632634.html 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用 ...
- iOS之自定义控件
一.使用纯代码方式 initWithFrame:中添加子控件 layoutSubViews中设置子控件的fame 对外设置数据接口,重写setter方法给子控件设置数据显示 在的viewControl ...
- SpringMVC学习(二)
SpringMVC入门(注解方式) 需求 实现商品查询列表功能. 第一步:创建Web项目 springmvc02 第二步:导入jar包 第三步:配置前端控制器 在WEB-INF\web.xml中配置前 ...
- VS2012 自动为类文件添加头注释
1. 打开文件夹 %VS110COMNTOOLS%..\IDE\ItemTemplates\CSharp\Code\1033\Class 2. 打开 Class.cs 文件,在其中添加 public ...
- layer弹出层 layer源码
下载源码:点击下载 ;!function(window, undefined){ "use strict"; var pathType = true, //是否采用自动获取绝对路径 ...