ES6第一章

本章全部的整理自“ECMAScript 6 入门”,希望大家看完能去买书,让这本开源的书不至于亏本!

本章总共5个题目,分别是:

1.let命令

2.块级作用域

3.const命令

4.顶层对象的属性

5. global对象

  先说说我对这几个的个人理解,我觉得let将会逐步替代var,因为var存在易泄漏和不稳定的因素,加上var不能适应块级作用域,而对于const觉得会成为未来全局变量的命名规范,因为这样也符合编程思维,运算的时候添加但不修改,对于顶层对象,我觉得算是js踏出的第一步,对于顶层对象和global对象,我只能静观其变了,不太适合参与实际实用,希望下个版本能成为一种标准

一.let命令

  ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,在代码块外引用就会报错,包括循环体和判断,而且在循环中可以替代闭包的用法

  1.不存在变量提升:也就意味着如果你在为声明前使用将不是undefined

  2.暂时性死区:这个解释起来比较麻烦,通俗来讲,如果就算你外层定义了这个变量,但是如果你在块中使用后又声明,那么就会报错,看图自己理解吧

  当然,如果不定义下面的代码,这个是不会报错的,死区在原生ES5中也是存在的,例如

  3.不允许重复声明:这个没什么好说的,一个域内不允许重复声明,其他语言的语法应该都是这样

二.块级作用域

  ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。第一,内层变量可能会覆盖外层变量。第二,用来计数的循环变量泄露为全局变量。

  1.块级作用域与函数声明:ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。

  2.do 表达式

三.const 命令

  const声明一个只读的常量。一旦声明,常量的值就不能改变。

  1.本质:const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。

  2.ES6 声明变量的六种方法:ES5 只有两种声明变量的方法:var命令和function命令。ES6除了添加letconst命令,后面章节还会提到,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有6种声明变量的方法。

四,五:从ES6开始,全局变量将逐步与顶层对象的属性脱钩。ES5的顶层对象,本身也是一个问题,因为它在各种实现里面是不统一的。

时间: 2024-10-22 10:53:59

ES6第一章的相关文章

ES6 第一章 let和const命令 具体参照http://es6.ruanyifeng.com

1.let类似于var用用来定义变量 1)let没有预解析,不存在变量提升 // var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; 2)let定义的变量在其定义之前使用都会报错,称为暂时性死区(TDZ) var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError

《ECMAScript 6 入门- 第一章 lef和const命令》 —— 摘抄

1 . lef命令 ES6新增了let命令,用来声明变量.它的用法类似于var,let声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b //1 2.const命令 const也用来声明变量,但是声明的是常量.一旦声明,常量的值就不能改变. const PI = 3.1415; PI // 3.1415 PI = 3; PI // 3.1415 const PI =

《node.js实战》第一章读后感

第一章:欢迎进入node.js世界 开始简单介绍了nodejs和前端的js一样,都使用了事件触发来完成异步请求的. 然后又简单介绍了nodejs的事件轮询机制 然后用NGINX和Apache的对比来说明异步I/O的事件轮询比有阻塞的多线程的处理能力要强 最后使用node的http模块来搭起了一个简单的服务器和一个流数据的服务器 Got It 1.node是异步单线程非阻塞I/O的JavaScript服务器开发平台. 异步:就像前端ajax一样,等触发了onreadystatechange事件再对

You Don't Know JS: this & Object Prototypes( 第一章 this or That?)

Foreword this 关键字和prototypes 他们是用JS编程的基础.没有他们创建复杂的JS程序是不可能的. 我敢说大量的web developers从没有建立过JS Object,仅仅对待这门语言作为一个事件绑定胶水,在按钮和Ajax请求之间. 我也曾是他们的一员,但是当我了解到如何掌握prototypes并创建JS对象,一个世界的可能性对我打开了. Chapter 1: this Or That? Chapter 2: this All Makes Sense Now! Chap

C#认证第一章1 题 11题

C#第一章第一题 C#认证第一章  11题

计算机网络安全第一章

计算机网络不安全因素:偶发因素.自然因素.认为因素(被动攻击.主动攻击.邻近攻击.内部人员攻击.分发攻击) 不安全的主要原因: 1.互联网具有不安全性:开放的网络,国际性的网络,自由性的网络 2.操作系统存在的安全问题:操作系统软件自身的不安全性,留下"后门".操作 系统体系结构造成的不安全隐患.操作系统可以创建进程.操作系统的无口令入口及隐蔽通道 3.数据安全问题 4.传输线路安全问题 5.网络应用存在的安全问题 6.网络安全管理问题 计算机网络安全是一门涉及计算机科学.网络技术.通

第一章读后感

第一章主要讲述了安卓系统的一些基本知识,安卓系统的架构以及如何查看Linux内核版本和其定义的规则. Android的体系结构主要由Linux内核.C/C++代码库.Android SDK API和应用程序四层构成,因此,Android和linux的核心部分差异非常的小:而且Android SDK API 是由Java语言编写的. 安卓移植在很大程度上是Linux内核移植主要就是移植驱动程序. 怎样学习Linux驱动开发呢,由于Linux的内核版本更新较快,每一次内核的变化就意味着Linux驱动

《大道至简》第一章读后感

经常听见有人抱怨编程太难,说自己不是学软件的料,那么他们真该好好看看<大道至简>这本书,相信他们看完这本书后会有很大收获. <大道至简>第一章引用了一个很简单的故事“愚公移山”,用这个故事很好的概述了我们在完成一个项目时所要进行的步骤.听上去“愚公移山”和编程简直是风马牛不相及,但是看过作者的叙述又有原来如此的感觉.其实编程并没有什么难懂的,就和我们日常生活一样,发现问题,分析问题,提出解决问题的方案,实施,和后续的验收.例如某天我们突然发现家里放不出水了,这就是发现问题,我们会观

读《大道至简》第一章有感

近期老师为我们推荐了一本书,叫做<大道至简>,书很薄,却精辟的讲述了软件工程专业对于编程这一实践过程的重要思想,我们总以为编程是怎样的有难度,却从来没有考虑过编程为什么难,他到底难在哪.事实是我们错了,我们不是不会技术,而是不会方法. 第一章主要讲述了编程的精义,作者利用愚公移山的故事,简洁明了的讲解了编程的实质含义,从愚公移山实施的各个方面与编程联系在一起,讲解了编程的过程.从开始的原因,到编程实现的目标,然后小组团队对这个编程项目的讨论,以及各个人员在不同项目上的安排,并且还有项目之外的协