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. XML 动态 插入 父类标示 子类标示

    由于第一次写博客,写的不好的地方,还请各位大神多多指点, 讲解一下:xml动态插入数据并保存,写这个时候费了我不少劲,最后终于皇天不负有心人让我搞出来了,特意分享给大家,写的不完美的地方还请大家多多指 ...

  2. 离线安装swashbuckle(webapi自动文档及测试工具)

    1.找到已经成功安装过的项目根目录的packages文件夹拷贝到新的项目的根目录 2.vs设置nuget程序包源 将源:地址改为新项目的packages文件夹 3.重新编译并修改代码 右键项目-> ...

  3. ios 控件代码transform学习笔记

    1.图片设置(平移,缩放,旋转) 创建一个transform属性 //按钮点击时,只能执行一次向上旋转 //派 M_PI_4 45度旋转 . CGAffineTransform transforms= ...

  4. Integer 与int 的区别

    int 是java 提供的8 种原始数据类型之一.Java 为每个原始类型提供了封装类,Integer 是java 为int 提供的封装类.int 的默认值为0,而Integer 的默认值为null, ...

  5. Java程序员必须掌握的8大排序算法

    分类: 1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序) 所需辅助空间最多:归并排序所需辅助空间最少:堆 ...

  6. 转移博客到xinqiyang.freeflare.com了,这里会继续更新.

    hi.... 欢迎大家来到这里,这里将转移到github page搭建的博客 http://xinqiyang.freeflare.com 了,现在习惯于实用markdown来写东西了,这样可以脱离浏 ...

  7. ASP.NET MVC 简介

    1. ASP.NET MVC 是什么? ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRai ...

  8. jQuery iPresenter 3D图片旋转

    在线实例 效果一 效果二 使用方法 <div class="htmleaf-container"> <div class="htmleaf-conten ...

  9. 用原生javascript实现在页面动态显示时间

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>js ...

  10. GPS各种地图坐标系转换(转载)

    http://my.oschina.net/fankun2013/blog/338100 地图供应商比较多,产生了许多地图坐标.地图坐标正确转换是个问题.在之前开发地图应用的时候发现从WGS84坐标系 ...