ES6中变量let的属性以及在for循环中的使用

ES6中变量let的属性以及在for循环中的使用

大家好,又见面了,我是你们的朋友全栈君。

let和var的差别

1、let没有变量提升,申明变量的同时必须对变量赋值

2、let不允许重复申明变量

3、let的作用域是块级作用域,这一点在for循环中可以提现

<ul id=”ul1″>
  <li class=”li”>1</li>
  <li class=”li”>2</li>
  <li class=”li”>3</li>
  <li class=”li”>4</li>
</ul>

<script>

window.onload = function () {

  var app = document.getElementsByClassName(‘li’);

  // for循环变量输出
  // for (var i = 0; i < app.length; i++) {

    // // 在for循环里绑定的事件要等循环结束后才会执行
    // app[i].onclick = function () {

    // console.log(i)
    // };
  // }
  // // 第一个循环这里点击输出的都是4

  // // 第一个for循环拆解后就是下面这个for循环
    // for (var i = 0; i < app.length; i++) {
      // var ss = function () {

        // console.log(i)
      // };
    // }
  // // 在for循环运行结束后再执行点击事件,调用ss函数,此时变量i的值当然是4
  // app[0].onclick = ss
  // app[1].onclick = ss
  // app[2].onclick = ss
  // app[3].onclick = ss

 

  // let申明的变量只在块级作用域{}中,所以在for循环外调用会报undefined
  // for (let i = 0; i < app.length; i++) {
    // let ss = function () {

      // console.log(i)
    // };
  // }
  // // 在for循环运行结束调用ss报错
  // app[0].onclick = ss
  // app[1].onclick = ss
  // app[2].onclick = ss
  // app[3].onclick = ss

  // 使用let变量可以直接在for循环变量输出i
  for (let i = 0; i < app.length; i++) {

    app[i].onclick = function () {

      console.log(i)
    };
  }
}

  

</script>

转载于:https://www.cnblogs.com/webwangjie/p/9370763.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RPM安装命令总结[通俗易懂]

    RPM安装命令总结[通俗易懂]在Linux操作系统下,几乎所有的软件均通过RPM进行安装、卸载及管理等操作。RPM的全称为RedhatPackageManager,是由Redhat公司提出的,用于管理Linux下软件包的软件。Linux安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM完成安装。RPM有五种操作模式,分别为:安装、卸载、升级、查询和验证。1)用RPM安装软件包,最简单的

    2022年6月12日
    33
  • Feign 原理_feign是什么

    Feign 原理_feign是什么Feign原理Feign描述Feign是github上的一个开源项目,目的是简化webservice客户端的开发。在使用Feign时,可以用注解修饰接口,feign还支持插件式的编码器和解码器,使用者可以通过该特性对请求和响应进行不同的封装与解析。流程1、feign使用JDK动态代理2、生成的代理类将进行请求信息封装,并且指定编码器(提供GsonEncoder)和解码器(提供GsonDecoder),如果需要自定义编码器和解码器,需要实现Encoder接口、Decoder接口3、

    2022年10月4日
    4
  • Java指令编译java文件

    Java指令编译java文件Java指令编译java文件1.进入cmd2.编译2.1切换不同JDK编译文件3.运行1.进入cmd如何快速进入/打开cmd–快捷键在源代码目录输入cmd,然后回车2.编译如果出现错误:编码GBK的不可映射字符(0x8D)需要在javac后面加上-encodingUTF-8javac-encodingUTF-8编译的文件.java这时候就会多出.class文件,就是字节码文件了。2.1切换不同JDK编译文件一般JDK配置好了,直接用javac

    2022年6月12日
    36
  • python读取log文件_python分析log日志

    python读取log文件_python分析log日志一、原理QXDM抓取log为isf格式,需要用QCAT打开进行分析,如果需要自动分析QXDM抓取的log,一个可行的方法为调用QCAT的COM接口打开isf文件并进行分析。QCAT6.X支持基于COM的接口调用,允许用户通过Perl、VBScript、JavaScript、Python等脚本语言调用应用。具体调用方法在QCAT安装后的《QCATUserGuide》用户手册中,第六章S…

    2022年10月2日
    4
  • 使用Flash Cookie技术在客户端永久保存HTTP Cookie「建议收藏」

    使用Flash Cookie技术在客户端永久保存HTTP Cookie「建议收藏」前言:在我负责的一个项目中,为了实现一个特殊的需求,要求在客户端的Cookie中长久保存一份数据,但是我们知道在客户端Cookie里保存数据是不稳定的,因为用户可能随时会清除掉浏览器的Cookie,

    2022年7月1日
    40
  • docker 修改容器时间_docker开放容器端口

    docker 修改容器时间_docker开放容器端口前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

    2022年7月31日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号