最近决定专心的研究一下ES6,然后自己上网看看资料,有一点小小的收获,给大家分享一下。
ES6说简单的确是简单的,因为它相对于ES5来说,是一种优化,等于说是间接的减少了我们学习JS的难度,并且它也一直都在完善。听到这里,大家一定都很疑惑,为什么说它在完善呢?其实,现在的ES6并没有完整,而是在开发阶段,而且近几年,一年发布一个最新的版本。所以目前为止的最新版本是ES2016版本的。
好了,也不再说那么多了,直接切入正题吧。我们先谈谈ES6的一些基础的东西。
今天我们要说的是,ES6的申明变量与常量。ES5的申明变量与相信大家都不陌生,它和ES6的区别如下所示:ES5:`var 变量名;const 常量名=常量`;ES6:`let 变量名;const 常量名=常量`一看,有的人就会认为var和let是一个意思,但是很遗憾,var和let其实差别真的很大,它们的区别主要是来自以下几个方面:1.let只在当前所在的代码块内有效,什么意思呢?举个栗子:`{var a=1;letb=1;}console.log(a);console.log(b)`大家可以猜猜,输出的结果是什么呢?1,1吗?不,输出的其实是1和一个“ReferenceError: b is not defined”错误。通过这个例子就可以充分的说明,let只在当前所在的代码块内生效.说道当前代码块有效,大家第一时间想到的一定是局部变量,的确,let定义的变量都可以称之为一个局部的变量。2.let定义的变量不会申明提前,什么意思呢?举个栗子:console.log(a);console.log(b)var a=1;let b=1;第一个输出的结果相信大家明白了,那就是undefined,那第二个大家知道了吗?undefined?no,答案是:ReferenceError为什么两个都是申明变量,但是结果却不同呢?那是因为在ES5里面,var申明的变量都会提前到代码块的最前面去申明,但是赋值操作会留在原地,如果在var前面去调用这个变量,会得到一个已经申明但是没有赋值的变量,所以输出的是undefined。但是let不同,它所申明的变量不会被提前申明,如果在代码块里,在let前面去调用这个变量,那么得到的是一个没有申明的变量,所以就会报一个错误(ReferenceError);3.let暂时性死区 ,什么叫暂时性的死区呢?结合第1、2点,我们可以大胆的去推测,假设,代码如下所示,会发生什么样的结果呢?var a=1;{console.log(a);let a=5;}上面的代码输出的是什么呢?有人会说,a在代码块外面申明了,那应该是输出1,也有的人抱有疑惑的态度,那么我就揭晓正确答案,正确的答案是(Uncaught ReferenceError: a is not defined);这就是let的暂时性死区,只要代码块里面用let申明了一个变量,那么整个代码块里面的这个变量就和let的申明结合到一起去了,而外面的申明对代码块里面的变量是毫无影响的。而且它也遵循第1、2点。这就是暂时性死区。4.不允许重复声明 举个栗子:{var a=5;var a=10;console.log(a)}//这串代码执行是没有问题的,结果是10;{let a=5;var a=10;}//这串代码执行是有问题的,结果是(Uncaught SyntaxError: Identifier 'a' has already been declared);所以说,在代码块里面,用let申明了一个变量,那么就不允许在代码块里面对它进行第二次的申明。以上就是我对ES6的let的一点简单的了解,欢迎点评哦。。然后再简单的说一下const。const ES6和ES5用法是一样的,都会遵循,1.一旦定义,决不能改变。2.一旦定义,必须赋值。但是ES6和ES5的区别是:1.ES6里面的const也会遵循只在当前所在的代码块内有效、定义不会申明提前、暂时性死区、不允许重复声明。并且如果申明一个对象为常量,const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变,所以将一个对象声明为常量必须非常小心。什么意思呢const obj = {};obj.a = 1;obj.a// 1obj = {}; // TypeError: "foo" is read-only数组也是同一个道理,如果要冻结整个常量,不要它改变,建议使用Object.freeze;用法如下所示:const obj = Object.freeze({});// 常规模式时,下面一行不起作用;// 严格模式时,该行会报错obj.a = 1;今天就说到这里哦,欢迎大家多多补充哦

关于ES6的一些浅薄的看法(1)相关推荐

  1. 写给初级前端的面试经验

    最近到了金三银四的跳槽季,很多人都会面临跳槽找工作,并且再过几个月又会到毕业季,越来越多的毕业生会面临这个问题. 同样,我们组因为业务需要(我们今年倒是还没有人员离职,感动╭(╯^╰)╮)需要进行社招 ...

  2. 运维人员处理云服务器故障的方法总结

    2019独角兽企业重金招聘Python工程师标准>>> 我们团队为Ucloud云计算服务提供专家技术支持,每天都要碰到无数的用户故障,毕竟IAAS涉及比较底层的东西,不管设计的是大客 ...

  3. 在服务器上排除问题的头五分钟

    一.尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体情况.不然你很可能就是在无的放矢. 必须搞清楚的问题有: 故障的表现是什么?无响应 ...

  4. 在服务器上排除问题的头 5 分钟

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://blog.jobbole.com ...

  5. directx最终用户运行时_运维定位服务故障时,前5分钟都在忙啥?

    遇到服务器故障,问题出现的原因很少可以一下就想到.我们基本上都会从以下步骤入手,这些也是绝大多数运维工程师在定位故障时前几分钟的主要排查点: 一.尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面 ...

  6. 浅谈编程-----非计算机专业以及非培训班的一些感悟

    工作加起来也快一年了,期间从单纯的GIS开发,转向互联网游戏开发,并且两个公司平台都还算行业里面比较大的厂,今天刚好有时间,就先记录一下我对编程的一些浅薄的看法,也当我编程一年的一个小总结.可能也有理 ...

  7. 旺旺上显示已上传服务器,在服务器上排除问题的头五分钟 | 旺旺知识库

    遇到服务器故障,问题出现的原因很少可以一下就想到.我们基本上都会从以下步骤入手: 一.尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体 ...

  8. 处理服务器故障的前5分钟(转)

    一.尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体情况.不然你很可能就是在无的放矢. 必须搞清楚的问题有: 故障的表现是什么?无响应 ...

  9. 数据库之十二星座 水瓶座

    本来今天是想休息一下,看看我喜欢看的"奇葩说", 和看那些肥皂剧相比,唇枪舌战,脑洞大开才是我 favorite.  本期说的是死亡,听完双方慷慨激昂的PK 后,输赢我到不关心,而 ...

最新文章

  1. python初学者之网络爬虫_Python初学者之网络爬虫(二)
  2. 【云计算】_8云视频与通信服务(完结)
  3. MapReduce入门
  4. Linux 免密登录配置
  5. Magento 2数据库EAV模型结构
  6. kubernetes高级之创建只读文件系统以及只读asp.net core容器
  7. vs2015 html页面没有试图,vs2015 web设计视图假死,求帮助
  8. WOJ 18 动态无向图
  9. Type(类型判断)
  10. Linux环境通过java虚拟机定位程序问题位置的方法
  11. 在ASP.NET AJAX中使用应用程序服务和本地化(5):自定义应用程序服务的服务器端实现...
  12. Logistic回归小结
  13. 《为自己工作——世界顶级设计师成功法则》—第1章1.2节有同情心
  14. 字符常量和字符串常量
  15. 【Java Map数据】中国各省份省会城市经纬度
  16. 差点被祭天!狂欢618,且看研发人如何绝地求生
  17. java jwe/jws_一篇文章带你分清楚JWT,JWS与JWE
  18. 解决:linux启动Redis报Failed to search for file:Cannot prepare internal mirrorlist: No URLs in mirrorlist
  19. 【BOOST C++字串专题11】Boost.Spirit(三)
  20. 常用传感器讲解十八--爆震传感器感器(KY-031)

热门文章

  1. FOT币值暴涨500%,一日内翻涨两次!分析师预测FOT可涨至数百美元……
  2. steam上的异形扫雷游戏tametsi技巧
  3. 天猫实时销量接口用于商品数据分析,超详细的接口介绍
  4. 学习Spreadsheet常用属性
  5. 带你揭秘学习编程的7大优势!你get到了吗?!
  6. linux dae文件下载,linux dae命令详解.doc
  7. 《凡人修真2》 架设
  8. C语言算法:十进制转为二进制
  9. mac usb iso linux系统安装教程,Mac上制作linux系统U盘安装盘
  10. 蓝帽杯2022初赛电子取证