第一章  基础

1.let和const命令

(1).let用于声明变量,所声明的变量只在当前代码块有效

特点:不存在变量提升     所以在变量声明之前就使用会报错

暂时性死区           只要块级作用域内存在let命令,他所声明的变量就绑定在该区域,不再受外部影响  如全局和块内都有同名变量  在块内操作是操作块内的那个变量

ES明确规定,如果区块中存在let和const指令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域,只要在声明之前使用,就会报错

不允许重复声明     不允许在同一作用域重复声明,因此不能在函数内部声明与参数同名的变量

tips:function bar(x = y, y = 2){

console.log(x,y);

}         // 会报错 因为当把y的值赋给x时y还没有声明

(2).块级作用域

块级作用域产生之前不合理的场景:

内部变量可能会覆盖外部变量          如内部有与外部同名的变量声明  由于变量声明提升 所以内层覆盖外层

用来计数的变量泄露成全局变量       由于闭包问题 计数的变量不能释放成为全局变量 失去计数功能

let实际上为js提供块级作用域

特点:

let定义的变量 外层代码不受内层代码影响

内层作用域可以定义与外层同名的变量

可以取代匿名函数

tips:

ES6规定,函数本身的作用域在其所在的块级作用域中

在严格模式下,函数只能在顶层作用域和函数内声明,其他情况会报错

ES6标准入门读书笔记的更多相关文章

  1. 第三章 Git的入门 - 读书笔记

    Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...

  2. ES6标准入门之变量的解构赋值简单解说

    首先我们来看一看解构的概念,在ES6标准下,允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称作解构,简而言之粗糙的理解就是变相赋值. 解构赋值的规则是,只要等号右边的值不是对象或者数组 ...

  3. [转] 《ES6标准入门》读书笔记

    来源:https://segmentfault.com/a/1190000005863641 let和const命令 ES6新增let命令,用于声明变量,是块级作用域. let声明的变量不会像var声 ...

  4. 《ES6标准入门》读书笔记 第5章 - 正则增强

    第五章 - 正则增强 构造函数增强 允许覆写修饰符,如new RegExp(someRegex, 'ig') 字符串上的正则方法 原先match.replace等可以调用正则的方法在String的原型 ...

  5. 【学习笔记】ES6标准入门

    这里简要记录一下对自己感触比较深的几个知识点,将核心的应用投放于实际的项目之中,提供代码的可维护性. 一.let和const { // let声明的变量只在let命令所在的代码块内有效 let a = ...

  6. ES6标准入门(第三版)学习笔记(1)

    ES6声明变量的六种方法 ES5只有两种 var,function命令 ES6新增了let,const,class,import命令 验证var与let用法上的不同 var a = []; for ( ...

  7. Python全栈工程师之从网页搭建入门到Flask全栈项目实战(1) - ES6标准入门和Flex布局

    1.简述 1.什么是ES6?ES6, 全称 ECMAScript 6.0,是 JavaScript 的下一个版本标准,2015年6月份发版.ES6的主要目的是为了解决 ES5 的先天不足. 2.了解E ...

  8. ES6标准入门 第一章:简介

    ECMAScript 6 是JavaScript 语言的下一代标准:发布于2015年,又称为ECMAScript 2015. ECMAScript 与 JavaScript 的关系:前者是后者的规范, ...

  9. 《ES6标准入门》(阮一峰)--11.对象的新增方法

    1.Object.is() ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===).它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0.J ...

随机推荐

  1. SAP 跨公司销售业务

    SAP 跨公司销售业务  http://blog.sina.com.cn/s/blog_95ac31e30102x5wh.html   分类: SAP_SD SAP 跨公司销售业务 一.业务简介 在由 ...

  2. 7_linux用户及权限(2)和管理

    useradd:useradd [options] USERNAME -u UID -g GID(基本组) -G GID,...(附加组) //省略号表示可以有多个,彼此之间用逗号隔开 -c &quo ...

  3. Python 开发 项目《外星人入侵》

    2019-02-05 本篇心路历程: 本篇是打算记录自己的第一个python项目,也是众人皆知的<外星人入侵项目>,本项目大概500多行.趁着寒假,大概耗时3天吧,把完整代码敲了出来,当然 ...

  4. App 打包

    记录一下: 1. applicationIdSuffix 实现不同 ApplicationId 打包,buildTypes 中添加编译后会成功生成加对应后缀的ApplicationId.在 produ ...

  5. leecode第二百三十题(二叉搜索树中第K小的元素)

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  6. 在命令行启动vscode

    1.windows使用 code . 命令打开vscode 1.打开vscode安装位置,进入bin文件夹,复制路径 eg:E:\Microsoft VS Code\bin:2.回到桌面,右键我的电脑 ...

  7. h5页面避免两个页面反复跳转死循环

    项目中经常会碰到在一个页面加判断之后跳转另一个页面,并且无法返回,来回跳转,死循环,遇到这种情况可以在跳转时使用location,replace,关闭之前页面,与location.href 两者的不同 ...

  8. wcf在post请求时,关于string类型参数传入中文的处理

    一.方法默认只有一个参数 (1)BodyStyle = WebMessageBodyStyle.Bare [OperationContract][WebInvoke(Method = "PO ...

  9. Java IO编程全解(四)——NIO编程

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7793964.html 前面讲到:Java IO编程全解(三)——伪异步IO编程 NIO,即New I/O,这 ...

  10. JRebel springboot部署idea

    JRebel springboot部署idea     http://127.0.0.1:8888/88414687-3b91-4286-89ba-2dc813b107ce   ctrl+shift+ ...