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. HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法

    [问题] 用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response: resp = (Http ...

  2. Linux安装JDK1.7

    发表此篇文章纯属本人愚钝,希望以后再安装JDK不要走那么多曲折的路,也希望可以给后人借鉴. 1.以下以JDK1.7为例 具体官网地址:http://www.oracle.com/technetwork ...

  3. 使用git error: RPC failed; result=22, HTTP code = 411

    使用git提交比较大的文件的时候可能会出现这个错误 error: RPC failed; result=22, HTTP code = 411 fatal: The remote end hung u ...

  4. GJM : 各大开发游戏引擎

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. 深入理解和应用display属性(一)

    Display在官方定义:规定元素应该生成的框的类型.本文只重点分析常用的6个值:none.block.inline.inline-block.inherit.flex.其他table.list-it ...

  6. jquery根据name属性查找

    $("div[id]") 选择所有含有id属性的div元素 $("input[name='keleyicom']") 选择所有的name属性等于'keleyic ...

  7. GIS管网项目-flex/java

    开发语言是flex.java,开发平台是myeclise.eclise,后台数据库是oracel或sqlserver,开发接口是arcgis api for flex,提供以下的功能: 1.应急指挥: ...

  8. WinForm中实现播放mp3 、mp4文件

    来自:http://www.cnblogs.com/duanchen/p/4445478.html 1.在Vs2012 工具箱右键-->"选择项"-->"Co ...

  9. XSS跨站测试代码大全

    '><script>alert(document.cookie)</script>='><script>alert(document.cookie)&l ...

  10. SharePoint 2013 图文开发系列之网站栏

    网站栏的本质,就是一个xml的描述文件,所以创建过程,基本就是通过Feature部署一个Xml文件,然后修改Xml文件的网站栏描述. 1.添加新项目,选择SharePoint 2013 空项目,如下图 ...