ECMAScript 6 学习 let 和 const命令

一、主要内容:

二、含义、注意事项、使用方法:

1、let 命令:用来声明一个变量,和var非常相似。

使用let声明变量的注意事项:

  1)、使用let声明的变量,所声明的变量只在命令所在的代码块内有效。

    {

      let a = 2;

      var b = 3;

      console.log(a);      //2

    }

console.log(a);        //a is not defined

     console.log(b);          //3

  2)、使用let命令声明的变量在域解析的时候不会被提升。

    

    console.log(a); //没有报错  undefined   a被提升了 不合理  a被定义了
    var a = 5;

    console.log(b); //报错 b is not defined
    let b = 4;

  3)、let 不允许在同一个作用域下生命已经存在的变量  

    var a = 9;
    let a = 0;  //Identifier ‘a‘ has already been declared     a已经被声明了

4)、let在for循环中的使用

   比如:有五个按钮    想要在点击按钮时打印五个按钮的下标 

    <button>1</button>
    <button>2</button>
    <button>3</button>
    <button>4</button>
    <button>5</button>

    js的写法:

 var butArray = document.querySelectorAll(‘button‘);

    //1、var

    for(var i=0;i<butArray.length;i++){
      butArray[i].onclick = function(){
      console.log(i);
      }
    }   //打印出来的都是5

    //2 var
    for(var i=0;i<butArray.length;i++){
        butArray[i].index = i;
      butArray[i].onclick = function(){
      console.log(this.index+1);
      }
     }
    //3 var
     for(var i=0;i<butArray.length;i++){
       (function(i){
       butArray[i].onclick = function(){
      console.log(i)
       }
       }(i))
     }

    //4、let
    for(let i=0;i<butArray.length;i++){
      butArray.onclick = function(){
      console.log(this.index)
      }
    }

    注:let 声明的for循环  在循环语句之内是父作用域,在循环体之中是子作用域

      列:

      for( let i = 0;i<3;i++){
        let i = 20;
        console.log(i);      //三个20
      }
      console.log(i);             //i is not defined

2、const命令:用来生命一个常量,常量就是不可以变化的量。

    const命令同样有let的1、2、3条特点,第一,声明的常量所声明的变量只在命令所在的代码块内有效。第二,声明的常量不会被提升。第三,不能声明已经被声明过的常量或变量。除了这些,使用const声明常量时特别要注意两点:

  1)、声明常量时必须赋值

  2)、声明的常量存储简单的数据类型时不可以改变其值,如果存储的是对象,那么引用不可以被改变,至于对象里面的数据如何变化是没有关系的。

               浏览器报错

       浏览器不会报错

时间: 2024-08-02 19:02:51

ECMAScript 6 学习 let 和 const命令的相关文章

ECMAScript 6 之 let 和 const 命令

1.let基本用法 1.1.声明变量 let声明的变量只在它所在的代码块有效. 1.2.不存在变量提升 var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined: let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错. 1.3.暂时性死区(temporal dead zone,简称 TDZ) 只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响: ES6 明确规定,如果区块中存在let和const命令,这个

ES6入门之let和const命令

前言 大家好,我是一只流浪的kk,当你看到这边博客的时候,说明你已经进入了ES6学习的领域了,从本篇博客开始,我将会将自己学习到ES6的相关知识进行整理,方便大家参考和学习,那么我将带你进入第一节的内容学习let和const命令,本篇博客从三个方面进行全方位解析. let命令 首先我们需要学习的是let命令的使用,这个使用非常简单,它其实也是声明变量的一种方式,和var相比我把它的特点总结了如下四点,一起来看看吧! (1):基本用法 <!DOCTYPE html> <html> &

《ECMAScript 6 入门- 第一章 lef和const命令》 —— 摘抄

1 . lef命令 ES6新增了let命令,用来声明变量.它的用法类似于var,let声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b //1 2.const命令 const也用来声明变量,但是声明的是常量.一旦声明,常量的值就不能改变. const PI = 3.1415; PI // 3.1415 PI = 3; PI // 3.1415 const PI =

ECMAScript 6学习——let命令

let 命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. 1 { 2 let a = 10; 3 var b = 1; 4 } 5 6 a // ReferenceError: a is not defined. 7 b // 1 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值.这表明,let声明的变量只在它所在的代

ES6标准学习: 1、let 与 const 命令

1.let命令 一.基本用法 首先看下面一段代码: var a = [] for (var i = 0; i < 10; i++) { a[i] = function () { return i } } a.map(fn => { console.log(fn()) }) 以上代码的运行结果可能是什么? 0, 1, 2, ... 9  ? 结果是:连续输出了10次 10 简单的解释就是,当使用map遍历a中的每一个fn时,当fn执行时,在作用域链上查找i时,找到的i是最终已经变成了10的i,而

ECMAScript 6 let和const命令

let命令 ES6新增了let命令,用来声明变量,用法类似于var,但是所声明的变量只在let代码块中生效,并且在代码块中,使用let命令声明变量之前,变量都是不可用的,这在语法上被称为暂时性死区. let无法存在变量提升现象,所以变量一定要在声明之后使用,否则会报错. let无法重复声明同一个变量,这与var是不同的. let是为JavaScript新增了块级作用域. const命令 const命令声明一个只读的常量,一旦声明,常量的值就不能改变.所以它一旦声明变量就必须立即初始化. cons

ES6之let(理解闭包)和const命令

ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,ECMAScript 6即ES6是ECMAScript的第五个版本,因为在2015年6月正式发布,所以又成为ECMAScript2015.ES6的主要目的是为了是JS用于编写复杂的大型应用程序,成为企业级的开发语言. 说明:由于有时候我们希望得知es6代码的具体实现原理或者说希望能够转化为es5使用,

ECMAScript 6 学习笔记(二)

ECMAScript 6 let和const命令 let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量.然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值.这表明,let声明的

走进EC6的let和const命令

详细学习链接: http://es6.ruanyifeng.com/#docs/let let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. 'use strict'; { let a = 10; var b = 1; } a // 报错,ReferenceError: a is not defined. b // 1 不存在变量提升 let不像var那样会发生"变量提升"现象.所以,变量一定要在声明后使