let语句的基本用法:

 1.let声明的变量为块级作用域,只在最近的{}里面有效,如果在外部引用就会报错。

{
let a = 10;
var b = "hello"
} alert( a ) //报错
alert( b ) // "hello"

正是由于该特性,所以let语句十分适合用于循环语句中,用于定义局部变量。

2.不会进行变量定义提前处理。在js语句中,通过var定义的变量存在变量声明提前的情况。就是在变量声明之前可以进行使用,但是这时该提前使用的变量值是undefined。而通过let定义的变量就不会存在该情况,如果在声明之前进行使用则会报错。该种情况也被叫做“暂时性死区”--在let定义之前不能进行任何有关该变量的操作,不然就会报错。

console.log(a) //undefinded
console.log(b) //error var a = 10;
let b = "py";

3.不能进行重复声明。即在同一个块级作用域内,let声明的变量不能和其他变量同名,就算是通过var定义的变量也不行。

function (c){
let a = "py"; // 错误
var a = "py"; let b = 10; //错误
let b = 11; let c = 12; //错误
}

const命令基本用法:

   1.const声明变量为常量,一经赋值之后就不能被修改。但是假如const声明的对象是复合类型对象,那么变量指向的是对象地址而不是数据,所以只要对象地址不发生改变,对象的属性可以变化。

const PI = 3.14
PI = 3
consol.log(PI) //在非严格模式下PI的值还是3,在严格模式下则会报错 const obj = {}
obj.name = "py";
console.log(obj.name) //py
obj = {} //报错

2.同let语句一样,const语句也具有块级作用域,声明不提前,不可重复声明的特性。

3.跨模块常量的声明和引用。通过import和export关键字来进行声明和引用处理。

// a.js
export const NAME = "py"
export const AGE = 25
export const SEX = "boy" //b.js
import * as constants from “./a"; // 路径要对
console.log(constants.NAME) // py //c.js
import {AGE,SEX } from "./a"
console.log(AGE) //
console.log(SEX) // boy

刚刚开始es6,主要是通过阮一峰老师的es6教程进行学习的,在学习的过程中自己根据教程进行了简化整理方便自己阅读和学习。阮一峰老师的教程:   ECMAScript 6 入门

es6学习笔记1 --let以及const的更多相关文章

  1. ES6学习笔记(一)——let和const

    1.ES6学习之let.const (1).var.let.const 变(常)量声明 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 在ES6中let就诞生了,实际上它 ...

  2. ES6学习笔记(1)----let和const命令

    参考书<ECMAScript 6入门>http://es6.ruanyifeng.com/ let和const命令 let 总结1.声明变量基本使用方法与var 相同  不同点  a.在代 ...

  3. ES6学习笔记之 let与const

    在js中,定义变量时要使用var操作符,但是var有许多的缺点,如:一个变量可以重复声明.没有块级作用域.不能限制修改等. //缺点1:变量可以重复声明 var a=1; var a=2; conso ...

  4. ES6学习笔记<一> let const class extends super

    学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...

  5. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  6. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  7. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  8. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  9. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

随机推荐

  1. JVM-绘图展现字节码执行引擎执行过程

    在我的上一篇博客JVM-String比较-字节码分析中介绍了String字符串比较的原因,借着分析字节码的机会,我这篇博客将会绘图展现方法内部字节码执行过程. 话不多说,贴上我们将要分析的Java方法 ...

  2. jquery限制文本框只能输入金额

    $("#batch_diff_percent").keyup(function () { var reg = $(this).val().match(/\d+\.?\d{0,2}/ ...

  3. web项目知识整理

    一.div居中 1.margin:auto 2.left:50%:margin-left:div宽度的一半 二.一般处理程序操作session 引using System.Web.SessionSta ...

  4. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  5. 深入理解及应用Position

    position俗称定位,主要取值及作用如下: static 默认值.没有定位,出现在正常文档流中 absolute 绝对定位,相对于position为absolute.relative.fixed的 ...

  6. CSS 优先级判断

    在面试中被问到这个问题 来记录下  发现自己之前之所以会忘记还是缺少理解的记忆 参考 CSS权威指南 一个CSS选择器的特殊性值表述为4个部分  0 0 0 0 对于选择器中给定的各个ID的属性值   ...

  7. window搭建webpack,react,babel傻瓜教程

    首先现在的webpack教程已经很多了,写这篇的原因是因为自己在从小白开始的搭建过程中,并没有找到比较好的教程,花费了很多的时间,so 有了这篇博客,方便小白同学学习. node环境在这里不在赘述,p ...

  8. 关于ArcGIS的Web 3D GIS问答

    以下问答基于ArcGIS 10.4版本,涉及的软件有 ArcGIS for Server ArcGIS for Desktop ArcGIS Pro 1.3 Esri Drone2Map 1 支持B/ ...

  9. Android 高级面试题及答案

    一 性能优化 1.如何对 Android 应用进行性能分析 android 性能主要之响应速度 和UI刷新速度. 可以参考博客:Android系统性能调优工具介绍 首先从函数的耗时来说,有一个工具Tr ...

  10. SQL SERVER中什么情况会导致索引查找变成索引扫描

    SQL Server 中什么情况会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)呢? 下面从几个方面结合上下文具体场景做了下测试.总结.归纳. 1:隐式转换会导致 ...