es中的变量let、const

责编:menVScode 2017-10-22 19:34 阅读(794)

let 特性:

1. 没有预解析 ;

console.log(name);
console.log(age);
let name = 'menvscode';
var age = 1;

打印结果为:Uncaught ReferenceError: name is not defined,这是因为 let 声明变量 name 是不会进行预解析。age的结果 undefined。

2. 块级作用域,只要是一对大括号就是一个作用域;

{
   let age = 1;
}
console.log(age);

打印结果为:Uncaught ReferenceError: age is not defined,一对大括号形成了作用域,外部访问不到内部了。

<style>
	div{width: 100px;height: 100px;display: none;}
</style>
<button>1</button>
<button>2</button>
<button>3</button>
<div style="background:red;">111</div>
<div style="background:yellow;">222</div>
<div style="background:green;">333</div>


var btn = document.getElementsByTagName('button');
var div = document.getElementsByTagName('div');
/* 
es5的写法
for (var i = 0; i < btn.length; i++) {
	btn[i].index = i;
	btn[i].onclick = function(){
		for (var i = 0; i < div.length; i++) {
			div[i].style.display = 'none'; 
		}
		div[this.index].style.display = 'block'; 
	}
}
*/
for (let i = 0; i < btn.length; i++) {
	btn[i].onclick = function(){
		div[i].style.display = 'block'; 
	}
};


const 特性:

1. 没有预解析 ;

2. 定义常量,且值不能被修改;

const age = 1;
age =2;
console.log(age);//Uncaught TypeError: Assignment to constant variable.

3.当用 const 来定义对象的时候,可以修改对象内部的属性值;但是你想将const定义好的对象,修改成字符串类型是不行的。

const obj = {
	name:'menvscode',
	age:1
}
obj.age = 2;
console.log(obj);//{name: "menvscode", age: 2}


标签: let const es6
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码