ES6入门教程---变量和常量
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>
最新文章
- KVM 虚拟机联网方式:NAT 和 Bridge
- apt 根据注解,编译时生成代码
- 超链接实现post方式提交
- nginx的优化
- 【ASP.NET基础】简单企业产品展示网站--产品编辑CRUD
- spark-sql
- Hard Process(二分)
- Ubuntu各种软件的安装
- bootstrap 基础表单 内联表单 横向表单
- [转载] Redis集群搭建最佳实践
- android手机短信获取
- MongoDB复制集技术
- kubernete 数据库 etcd
- ManageEngine的EventLog Analyzer许可信息
- October 24th, 2017 Week 43rd Tuesday
- Arcgis创建SDE_Geometry、SDO_Geometry的区别
- JAVA框架 Spring 约束配置本地资源
- k8s helm 可视化UI 管理工具 monocular部署试用
- AutoFac使用方法总结一:注册
- mysql--对行(表中数据)的增删改查
热门文章
- win10安装tomcat7
- 基于对话框的Opengl框架
- linux cpu占用100%排查
- IOC/DI控制反转与依赖注入
- 基类的两个派生类再派生一个派生类 用virtual避免二义性
- ls命令还能这么玩
- ACM学习历程—HDU2068 RPG的错排(组合数学)
- Xshell 主机和远程机之间的文件传输
- 消息队列:快速上手ActiveMQ消息队列的JMS方式使用(两种模式:Topic和Queue的消息推送和订阅)
- "The object cannot be deleted because it was not found in the ObjectStateManager."