ES6中宣示变量

By admin in 4858美高梅 on 2019年4月15日

在ES陆中大家有二种概念变量的情势:let   
const

1、首要内容:

壹、首要内容:

ECMAScript 6 学习 let 和 const命令,ecmascriptconst

一、主要内容:

4858美高梅 1

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

一、let 命令:用来声称二个变量,和var极度相像。

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

  一)、使用let注解的变量,所评释的变量只在指令所在的代码块内有效。

    {

      let a = 2;

      var b = 3;

      console.log(a);      //2

    }

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

     console.log(b);          //3

  二)、使用let命令评释的变量在域解析的时候不会被提高。

    

    console.log(a); //未有报错  undefined   a被晋级了 不创建 a被定义了
    var a = 5;

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

 

  三)、let 不允许在同三个成效域下生命早已存在的变量  

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

       四)、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){
ES6中宣示变量。       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的一、2、3条特色,第三,证明的常量所评释的变量只在命令所在的代码块内立见效能。第三,申明的常量不会被晋级。第一,不能声称已经被声称过的常量或变量。除了这个,使用const评释常量时特地要专注两点:

  一)、注明常量时务必赋值

  二)、表明的常量存款和储蓄轻松的数据类型时不得以变动其值,即使存款和储蓄的是目的,那么引用不能被改成,至于对象里面包车型客车多少如何转移是从未提到的。

  4858美高梅 2     
     
 浏览器报错4858美高梅 3

  4858美高梅 4   
 浏览器不会报错4858美高梅 5

 

六 学习 let 和
const命令,ecmascriptconst 1、主要内容: 2、含义、注意事项、使用方法:
一、let 命令:用来声称1个变量,和var拾叁分…

      let特点:

4858美高梅 6

4858美高梅 7

            1.let定义时不会进行变量申明进步

2、含义、注意事项、使用办法:

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

            二.变量不允许被再次定义

一、let 命令:用来声称2个变量,和var非凡相像。

1、let 命令:用来声称三个变量,和var非凡相像。

            三.变量不得以被去除

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

      使用let评释变量的注意事项:

            肆.在for循环个中用let定义i
循环时能够保留 i 的值

  壹)、使用let注脚的变量,所表明的变量只在指令所在的代码块内有效。

  一)、使用let申明的变量,所申明的变量只在指令所在的代码块内有效。

           
伍.在块级成分中用let定义的变量只还好此时此刻块级功能域中采纳(注:凡是用{}包裹的都是块级效用域,然而除了对象以外)

    {

    {

 

      let a = 2;

      let a = 2;

  const特点:(证明常量大概不可被涂改的变量)

      var b = 3;

      var b = 3;

             一.const注解的变量值不允许被改造

      console.log(a);      //2

      console.log(a);      //2

        二.不会开始展览变量评释提高

    }

    }

             三.常量不允许被剔除

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

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

 

     console.log(b);          //3

     console.log(b);          //3

       对let第10脾本性给大家举个小栗子

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

  二)、使用let命令评释的变量在域解析的时候不会被进级。

       若body标签里面有三个button

    

    

         <button>按钮1</button>

    console.log(a); //未有报错  undefined   a被提高了 不客观
 a被定义了
    var a = 5;

    console.log(a); //未有报错  undefined   a被升高了 不客观
 a被定义了
    var a = 5;

         <button>按钮2</button>

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

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

         <button>按钮3</button>

 

 

         <button>按钮4</button>

  三)、let 不容许在同二个功效域下生命已经存在的变量  

  三)、let 不一致旨在同1个功能域下生命已经存在的变量  

        <button>按钮5</button>

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

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

  script标签里面大家来个标签绑定1个小事件

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

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

        <script>

   比如:有七个按键    想要在点击按钮时打字与印刷七个开关的下标 

   比如:有三个开关    想要在点击开关时打字与印刷八个开关的下标 

        var btnArr = document.getElementsByTagName(“button”);

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

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

        for (let i = 0; i < btnArr.length; i++) {

    js的写法:

    js的写法:

             btnArr[i].onclick = function(){

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

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

                 console.log(i);

    //1、var

    //1、var

             }

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

    for(var i=0;i<butArray.length;i++){
      butArray[i].onclick = function(){
      console.log(i);
      }
    }   //打字与印刷出来的皆以五 

        }

    //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))
     }

    //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))
     }

  用let定义 i
时点击不一样的开关时,打字与印刷的是每一种开关对应i

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

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

      

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

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

    var btnArr = document.getElementsByTagName(“button”);

      列:

      列:

        for (var i = 0; i < btnArr.length; i++) {

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

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

             btnArr[i].onclick = function(){

 

 

                 console.log(i);

2、const命令:用来生命二个常量,常量正是无法改换的量。

二、const命令:用来生命一个常量,常量就是不可能转换的量。

             }

    const命令同样有let的一、2、3条特色,第一,证明的常量所表明的变量只在命令所在的代码块内卓有作用。第3,声明的常量不会被提高。第壹,不可能声称已经被声称过的常量或变量。除了那些,使用const阐明常量时特意要专注两点:

    const命令同样有let的一、2、3条特色,第二,申明的常量所证明的变量只在指令所在的代码块内有效。第三,注明的常量不会被晋级。第三,不能宣称已经被声称过的常量或变量。除了那个,使用const注解常量时专门要注意两点:

        }

  一)、注解常量时必须赋值

  一)、证明常量时必须赋值

  用var定义 i
时点击分歧的开关时,每一种按键打印的都以 五(即循环后 i
的值,因为事件时异步推行的,然则for循环不会等待异步事件)

  二)、证明的常量存款和储蓄轻便的数据类型时不得以退换其值,借使存款和储蓄的是目的,那么引用不能被转移,至于对象里面包车型大巴数额怎么着转换是未曾涉嫌的。

  2)、表明的常量存储轻易的数据类型时不可以转移其值,借使存款和储蓄的是目的,那么引用不得以被改换,至于对象里面包车型大巴数额怎么着变化是未曾关联的。

</script>

  4858美高梅 8           
 浏览器报错4858美高梅 9

  4858美高梅 10 
         
 浏览器报错4858美高梅 11

 

  4858美高梅 12   
 浏览器不会报错4858美高梅 13

  4858美高梅 14 
 
 浏览器不会报错4858美高梅 15

 

 

 

 

    

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有