声明
var:能重复声明,不能限制修改,函数级作用域 如function;
let:不能重复声明,变量 限制修改,块级作用域 如:{ }
const:不能重复声明,常量 限制修改,块级作用域 如:{ }
// 在全局与函数show中,分别使用var声明。导致全局的 a被修改 var a = 1;
let b = 2;
let c = 3;
function show() {
var a = 2;
console.log(a);
console.log(b);
console.log(c);
alert(a);
}
show()
</script>
块级作用域
<script>
window.onload = function () {
let varBtn = document.getElementsByTagName('input');
let letBtn = document.getElementsByTagName('button');
//闭包解决办法,如果不用此方法,就无法出现逐个弹出input的值
for (var i = 0; i < varBtn.length; i++) {
(function (i) {
varBtn[i].onclick = function () {
alert(i)
}
})(i);
}
//使用let可以简单解决,无法逐个弹出input的值问题
for (let l = 0; l < letBtn.length; l++) {
letBtn[l].onclick = function () {
alert(l)
}
}
}
</script>
解构赋值
<script>
//1、两边结构一样(JSON命名还要一样)
//2、右侧数据格式正确
//3、结构与赋值同时完成(不能换行)
let jsonData = { id: 2, status: "ok", arr: [1, 2, 3] };
let { id, status, arr: number } = jsonData;
console.log(id, status, number);
arr = [1, 2, 3]
let [c, b, a] = arr;
console.log("arr数组格式" + a + b + c);
</script>
网友评论