1. 程式人生 > 其它 >var,const和let的區別

var,const和let的區別

技術標籤: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.