1、let命令:用法类似于var,但是所声明的变量,只在let命令所在的代码块有效。

  例:var a = [ ];

    for(var i=0;i<10;i++){

      a[ i ] = function(){

        console.log( i );

      };

    }

    a[ 6 ]( );     // 10

    var a = [ ];

    for(let i=0;i<10;i++){

      a[ i ] = function(){

        console.log( i );

      };

    }

    a[ 6 ]( );     // 6

这样子看来就是let是每次循环都是一个新的变量,而var 是全局变量每一次循环变量i的值都会改变;

  for循环的特殊之处就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域;

let 命令不存在变量提升,我们很多时候使用var的时候是,先使用在声明,用为var存在提升变量,var,function声明的全局变量,属于顶层对象的属性,而es6 新出的4中命令(let,const,class,import)声明的全局变量,不属于顶层对象的属性。所以使用,let,const需要先声明在使用。

暂时性死区:

只要块级作用域内存在let命令,它所声明的变量就“绑定这个区域”,不在受外部的影响,(就是闭关锁国了谁也不例了,你进不来的)。

不允许重复声明:let 不允许在相同的域内重复声明同一个变量

块级作用域:

ES6允许块级作用域的任意嵌套:{{{{{let insane="Hello World"}}}}}

ES6 let const学习的更多相关文章

  1. es6从零学习(一)let 和 const 命令

    es6从零学习(一):let 和 const 命令 一:let 变量 1.块级作用域{}:let只在自己的块级作用域内有效. for(let i =0;i<3;i++) { console.lo ...

  2. es6从零学习(二):promise

    es6从零学习(二):promise 一:promise的由来 某些情况下,回调嵌套很多时,代码就会非常繁琐,会给我们的编程带来很多的麻烦,这种情况俗称——回调地狱.由此,Promise的概念就由社区 ...

  3. 【ES5 ES6】使用学习

    [ES5 ES6]使用学习 转载: ============================================================= 1.Promise 2.下划线转驼峰,驼 ...

  4. es6从零学习(五):Module的语法

    es6从零学习(五):Module的语法 ES6 模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量 一:es6模块化和 CommonJS 和 AMD 模块 (运行 ...

  5. es6从零学习(四):Class的继承

    es6从零学习(四):Class的继承 一:继承的方式 1.Class 可以通过extends关键字实现继承 class Point { } class ColorPoint extends Poin ...

  6. es6从零学习(三):Class的基本用法

    es6从零学习(三):Class的基本用法 一:定义一个类 //定义类 class Point { constructor(x, y) { this.x = x; this.y = y; } toSt ...

  7. const学习(续)

    续接上一篇<C++ const学习> const与成员函数 之前说到了const修饰成员函数本身. const成员函数不能修改对象成员值 对于const或者费const对象都可以调用con ...

  8. ES6之const命令

    一直以来以ecma为核心的js始终没有常量的概念,es6则弥补了这一个缺陷: const foo='foo'; foo='bar';//TypeError: Assignment to constan ...

  9. es6零基础学习之项目目录创建(一)

    和大家分享一下在学习es6的过程中所积累的东西,也希望更多的朋友能够互相学习 首先创建项目目录 打开你的命令行,什么文件下都可以,大家请随意,我自己用的git,输入 mkdir es6 创建一个完整的 ...

随机推荐

  1. docker上配置mysql主从复制

    1.在docker上启动2台mysql容器:(这里3306为主,3307为从) docker run -d  -e MYSQL_ROOT_PASSWORD=123456  -p 3306:3306 - ...

  2. baiduMap & MapV 简单demo

    看到 MapV 的一个demo 的底图比较好看,练练手 MapV demos:https://mapv.baidu.com/examples/ 参考的demo:https://mapv.baidu.c ...

  3. iview 表单非空验证

    rules: { title: [ {required: true, message: '请填写栏目名称', trigger: 'blur'} ], desc: [ {required: true, ...

  4. Github 入门(“趣考网络”学习第一步)

    目录 为什么要使用GitHub 下载Github Desktop fork 与 pull request git pull,fetch,merge,push的区别与联系 git clone 与 dow ...

  5. vue深度监控数据改变,缓存数据到本地

    项目效果图: var vm = new Vue({ el:'#app', data:{ students:[], }, watch:{ students:{ handler(){ localStora ...

  6. Java基础 JDBC

    一,前言 数据库是开发中必不可少的一个工具,那么java如何操作数据库呢,那就是我们的JDBC了,接下来我们将会好好聊一下这个JDBC. 二,JDBC 2.1 JDBC概述 JDBC(Java Dat ...

  7. ORA-27300 ORA-27301 ORA-27302 sskgpcreates

    1.环境信息 OS:SUSE 12SP3 DB:12.2.0.1.0 2.数据库启动失败 SQL> startup ORA-27154: post/wait create failed ORA- ...

  8. IO多路复用之select,poll,epoll个人理解

    在看这三个东西之前,先从宏观的角度去看一下,他们的上一个范畴(阻塞IO和非阻塞IO和IO多路复用) 阻塞IO:套接口阻塞(connect的过程是阻塞的).套接口都是阻塞的. 应用程序进程-----re ...

  9. mvc自定义分页(加页数的)(转)

    1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...

  10. BigDecimal源码

    1 public BigDecimal(char[] in, int offset, int len, MathContext mc) {// 使用字符数组的构造方法,一般我们推荐使用的是一Strin ...