var,const和let的區別
阿新 • • 發佈:2020-12-19
技術標籤:jses6javascripthtml
hello,這裡是菜鳥一隻(洪荒少女平平子~)
今天看一下var,const和let的區別~
首先,來一個典型的例子:實現點選相應按鈕,輸出相應的數字。
<script> window.onload=function(){ var btn1=document.getElementByTagName('input'); for(var i=0;i<btn1.length;i++){ btn1[i].onclick=function(){ alert(i); } } } </script> <body> <input type="button" value="按鈕1" /> <input type="button" value="按鈕2" /> <input type="button" value="按鈕3" /> </body>
上方程式碼執行後,會發現無論點選哪個按鈕,最後彈出的都是數字3。
通常情況下,我們會這樣解決:
<script>
window.onload=function(){
var btn1=document.getElementByTagName('input');
for(var i=0;i<btn1.length;i++){
(function(i){
btn1[i].onclick=function(){
alert(i);
}
})(i)
}
}
</script>
但此時算是較為麻煩了,es6的語法可以較為簡便的解決這個問題,就是利用let的特性(方法如下):
<script>
window.onload=function(){
var btn1=document.getElementByTagName('input');
for(let i=0;i<btn1.length;i++){
btn1[i].onclick=function(){
alert(i);
}
}
}
</script>
總結一下:
var :1、可以重複宣告
2、無法限制修改
3、沒有塊級作用域
let 不能重複宣告,變數-可以修改,塊級作用域const 不能重複宣告,常量-不能修改,塊級作用域
I am a slow walker,but i never walk backwards.
Thankyouforyourtoleranceandlookforwardtoyourrecognition.