1、作用域只侷限於當前**塊
if(true)
console.log(str)
console.log(str1)// str1 is not defined
2、let宣告的作用於不會被提公升
console.log(str)
var str = 1
console.log(str1) // str1 is not defined
let str1 = 2
3、同一作用域下不能定義相同的變數
var str = 1
var str = 11
console.log(str)//覆蓋上乙個定義的變數
let str1 = 2
let str1 = 22
console.log(str1)//'str1' has already been declared
4、for迴圈體現let的父子作用域
按鈕1button>
按鈕2button>
按鈕3button>
按鈕4button>
按鈕5button>
window.onload = function
() }
/*解決方法1
var btns = document.queryselectorall("button")
for (var i = 0; i < btns.length; i++)
})(i)
}*//*解決方法2
let btns = document.queryselectorall("button")
for(let i = 0; i}
script>
body>
var和let的區別
在es6中新增了let命令,用來宣告變數。它的用法類似於var,但是所宣告的變數,只在let命令所在的 塊內有效。let let所在的區域會形成塊級作用域 let不存在變數提公升的情況 let會形成暫時性的死區 不可以在同一作用域下重複宣告變數 var 在es6之前 都是用var 宣告變數,只有函式...
var 和 let 的區別
var 和 let 都是存在 函式作用域以及全域性作用域的 但是 let 多了乙個 塊級作用域 而 var 則可以對同乙個變數重複多次定義,每次定義取最新值 函式作用域 指的是,在函式裡面定義的變數只能在函式裡面使用,出了函式外面就undefined 全域性作用域 指的是,在全域性範圍下定義 不在函...
var 和 const 和let的區別
es5中是不存在塊級作用域的。在es6增加了const和let,可以實現塊級作用 js中有兩種作用域,全域性作用域和方法作用域 function getdate getdate console.log date reference error date在外面方法中訪問不到但是有個問題,只要在方法中定...