<script>
function test(){
for(var i =0 ;i<5;i++){
// let
console.log(i);
}
console.log(i);
}
test();
</script>
i是在for循环里面定义的一个局部变量,按理来说并不会出现第6个值
这就是var 的缺点了,作用域是在一个方法内。
利用let
for循环外面的i就失效了。let的作用域就是它所定义的那一个块区域。
let的作用就跟立即执行函数类似
<script>
function test(){
(function(){
for(var i =0 ;i<5;i++){
console.log(i);
}
}())
console.log(i);
}
test();
let 定义的变量不会被全局识别
<script>
var ss = 23;
console.log(window.ss);
let sss = 55;
console.log(window.sss);
</script>
<script>
let web = "2323";
function show(){
let web = "1231231"
console.log(web);
}
show();
console.log(web);
</script>
方法内let定义的并不会在外部存在