zoukankan      html  css  js  c++  java
  • 粗看ES6之变量

    标签: javascript


    var定义变量面临的问题

    • 可以重复定义
    • 无法限制变量不可修改
    • 无块级作用域

    ES6变量定义升级

    • 新增let定义变量
    • 新增const定义常量

    let特性

    • 有块级作用域
    • 不可重复定义

    const特性

    • 有块级作用域
    • 不可重复定义
    • 不可修改

    解决的痛点

    example1 :

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <title>JS Bin</title>
    </head>
    <body>
      <input type="button" value="1">
      <input type="button" value="2">
      <input type="button" value="3">
      <script>
        /*
        *如下代码如果想做到点击每个按钮弹出当前按钮的索引,
        *用var的话要么就是通过自定义属性,或者用一个自执行函数创造一个作用域
        *但是你把var i=0换成let i=0就能很好的实现你所想要的
        */
        var btnList = document.getElementsByTagName('input');
        var len = btnList.length;
        for(var i=0;i<len;i++){//(var let =0;i<len;i++)
          btnList[i].onclick = function(){
            alert(i);
          }
        }
      </script>
    </body>
    </html>
    

    测试地址

    example2:

        /*
        *在做复杂项目的时候经常会因为重复定义变量导致莫名BUG,
        *但是当你如果把如下代码var换成let来定义,你将会发现控制台会丢给你一个大大的变量
        *已定义的错SyntaxError: Identifier 'a' has already been declared
        */
        var a = 1;
        var a = 2;
        alert(a);
    

    测试地址

    example3

        /*
        *当前想固定一个变量为不可变值时,以前是无法实现的
        *但是现在通过const定义的常量如果你再去修改会在控制台报一大错
        */
        const PI = 3.1415926;
        PI = 'aaa';
        alert(PI);
    

    测试地址

  • 相关阅读:
    关系数据库元数据处理类(一) 创建元数据实体
    常用通用简单文件上传功能
    基于NOPI的Execl模板转换类,直接将Execl模板转换对应的Entity
    CSS彻底研究(3)
    CSS彻底研究(2)
    CSS彻底研究(1)
    CLR via C#
    前端JS模版库kino.razor
    CLR via C#
    CLR via C#
  • 原文地址:https://www.cnblogs.com/xwwin/p/7852737.html
Copyright © 2011-2022 走看看