ES6提出了两个新的声明变量的命令:let 和 const 
1. 建议不再使用var,而使用let 和const 。优先使用const。

在定义之后值是固定不变的,即为常量
常量的值不能修改,但是如果常量保存的是一个对象,那么对象的属性是可以被修改的。

const a = 1;

a = 2;
console.log(a);//报错

const a = {
   name:'leo'
 };
 a.name = 'momo';
 console.log(a.name);   //momo

let特性:
  1、不允许重复声明
  2、没有预解析。
  3、块级作用域

一对{}包括的区域称为代码块
块级作用域指一个变量或者函数只在该区域才起作用。
从块的开始到声明这段的区域 暂存死区。

举个常见的例子

用var依次循环输出i,就要用到闭包

for(var i=0;i<10;i++){
  (function(i){
         setTimeout(function(){
       console.log(i);
     })
       })(i)
 }

用let依次循环输出i,就很方便

for(let i=0;i<10;i++){
  setTimeout(function(){
     console.log(i);
   })
}

应用实例

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
  div{
    display: none;
  }
  .show{
    display: block;
  }
  .active{
    background-color: yellow;
  }
  </style>
</head>
<body>
  <input type="button" value="tab1" class="active">
  <input type="button" value="tab2">
  <input type="button" value="tab3">
  <div class="show">div1</div>
  <div>div2</div>
  <div>div3</div>
  <script type="text/javascript">
  "use strict"

  var tabs = document.getElementsByTagName('input');

  var divs = document.getElementsByTagName('div');

  for(let i=0;i<tabs.length;i++){
    tabs[i].onclick = function(){
      for(var j=0;j<tabs.length;j++){
        divs[j].className = '';
        tabs[j].className = '';
       }
      this.className = 'active';
      divs[i].className = 'show';
    }
  }
  </script>
</body>
</html>

最新文章

  1. KVM 虚拟机联网方式:NAT 和 Bridge
  2. apt 根据注解,编译时生成代码
  3. 超链接实现post方式提交
  4. nginx的优化
  5. 【ASP.NET基础】简单企业产品展示网站--产品编辑CRUD
  6. spark-sql
  7. Hard Process(二分)
  8. Ubuntu各种软件的安装
  9. bootstrap 基础表单 内联表单 横向表单
  10. [转载] Redis集群搭建最佳实践
  11. android手机短信获取
  12. MongoDB复制集技术
  13. kubernete 数据库 etcd
  14. ManageEngine的EventLog Analyzer许可信息
  15. October 24th, 2017 Week 43rd Tuesday
  16. Arcgis创建SDE_Geometry、SDO_Geometry的区别
  17. JAVA框架 Spring 约束配置本地资源
  18. k8s helm 可视化UI 管理工具 monocular部署试用
  19. AutoFac使用方法总结一:注册
  20. mysql--对行(表中数据)的增删改查

热门文章

  1. win10安装tomcat7
  2. 基于对话框的Opengl框架
  3. linux cpu占用100%排查
  4. IOC/DI控制反转与依赖注入
  5. 基类的两个派生类再派生一个派生类 用virtual避免二义性
  6. ls命令还能这么玩
  7. ACM学习历程—HDU2068 RPG的错排(组合数学)
  8. Xshell 主机和远程机之间的文件传输
  9. 消息队列:快速上手ActiveMQ消息队列的JMS方式使用(两种模式:Topic和Queue的消息推送和订阅)
  10. "The object cannot be deleted because it was not found in the ObjectStateManager."