當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var
生活随笔
收集整理的這篇文章主要介紹了
let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
事實上var的設計可以看成JavaScript語言設計上的錯誤. 但是這種錯誤多半不能修復和移除, 以為需要向后兼容. 大概十年前, Brendan Eich就決定修復這個問題, 于是他添加了一個新的關鍵字: let. 我們可以將let看成更完美的var 塊級作用域 JS中使用var來聲明一個變量時, 變量的作用域主要是和函數的定義有關. 針對于其他塊定義來說是沒有作用域的,比如if/for等,這在我們開發中往往會引起一些問題。
?ES5中的var是沒有塊級作用域的(if/for)
??ES6中的let是由塊級作用的(if/for)
??ES5之前因為if和for都沒有塊級作用域的概念,?所以在很多時候,?我們都必須借助于function的作用域來解決應用外面變量的問題.
??ES6中,加入了let,?let它是有if和for的塊級作用域.
??1.變量作用域:?變量在什么范圍內是可用.
? 2.沒有塊級作用域引起的問題:?if的塊級
?3.沒有塊級作用域引起的問題:?for的塊級
// 3.沒有塊級作用域引起的問題: for的塊級// 為什么閉包可以解決問題: 函數是一個作用域.var btns = document.getElementsByTagName('button');for (var i=0; i<btns.length; i++) {(function (num) { // 0btns[i].addEventListener('click', function () {console.log('第' + num + '個按鈕被點擊');})})(i)}?
總結
以上是生活随笔為你收集整理的let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算属性一般是没有set方法, 只读属性
- 下一篇: v-on的参数问题