第一章  基础

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. Java核心知识盘点(一)- 数据存储

    MySQL 索引使用的注意事项 1.索引的目的:在于提高查询效率,插入和更新的操作,数据库的操作是慢的,但是查询操作会非常快,索引可以对表中一个或多个字段进行加索引动作. 2.索引的类型: 1.唯一索 ...

  2. CPU高的排查

    之前有朋友反馈说发的内容希望有个梯度,逐步加深,前面发了几篇关于jvm源码分析的文章,可能我觉得我已经把内容写得浅显易懂了,但是对于某些没怎么接触的同学来说还是比较难理解,这个我以后慢慢改进吧,今天发 ...

  3. SQL 函数 coalesce()、row_number()的用法

    coalesce()函数 ①用途: 将空值替换成其他值 返回第一个非空值 ②表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expressio ...

  4. php输出语句有什么不同

    print()函数: 输出一个或者多个字符串.同echo一样,实际上它并不是一个函数.print有返回值.而echo没有.当其执行失败时返回false,成功 则返回true,速度比echo稍慢.只能打 ...

  5. QTL定位相关

    1.原理 https://www.sohu.com/a/211301179_278730 较为详细

  6. Python turtle学习笔记

    1介绍 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而 ...

  7. 使用 HttpClient 进行文件上传

    1.使用 AddPart 方法 public static void upload(String authorization,String baseUrl,String filePath,String ...

  8. redist命令操作(二)--哈希Hash,列表List

    1.Redis 哈希(Hash) 参考菜鸟教程:http://www.runoob.com/redis/redis-hashes.html Redis hash 是一个string类型的field和v ...

  9. vue2 商城首页轮播图切换

    home.vue <template> <div class="home"> <HomeBanner></HomeBanner> & ...

  10. 一个springboot注解不成功的小问题

    报错: Consider defining a bean of type ''xxx" in your configuration. 最后发现是POM.xml里面 关于mybatis的包 & ...