ES6
let
let关键字的用法规范:
- 声明变量
- let声明的变量不能重复声明
- 不存在变量提升, 临时性死区 ?
- 声明不会提前
function fu(){
console.log(username);
let username = "小丽丽";
}
fu();
控制台打印会报错:

块级作用域:
- 代替闭包的一些功能
<ul id="myList">
<li>0Lorem ipsum dolor sit amet.</li>
<li>1Lorem ipsum dolor sit amet.</li>
<li>2Lorem ipsum dolor sit amet.</li>
<li>3Lorem ipsum dolor sit amet.</li>
</ul>
<script>
let lis = document.querySelectorAll("#myList li");
for (let i = 0; i < lis.length; i ++) {
lis[i].onclick = function(){
console.log(i);
}
}
</script>
点击会打印对应序号,不会与其他li冲突:

- 大括号可以产生块级作用域
块级作用域
if(true){
var a =100;
let b = 200; //具有块级作用域
console.log(b);
}
console.log(a);
输出结果:

const
- 声明常量
- 常量的值一旦声明就不能更改
- const声明的常量同样存在作用域(局部作用域、块级作用域、全局作用域)
const与let作用域很是相似
全局作用域和顶层对象
- ES6中去掉了顶层对象的概念
- 为了向下兼容,在全局作用域中使员var声明的变量和直接声明的函数仍然是顶层对象的属性和方法。 而使用let和const声明的变量不再输入顶层对象
var username ="小红";
function fu(){
console.log("I am fu");
}
console.log(window.username);
window.fu();
let userage =100;
console.log(window.userage);
输出结果:

本文由 倪建成学习时 编辑,只是普通笔记。若是对你有用,可以自行转载
最后编辑时间为:2019-08-29 00:00:00