let 和 var 的區別

2021-08-22 19:12:03 字數 1012 閱讀 5147

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在外面方法中訪問不到但是有個問題,只要在方法中定...