因為let在if、for迴圈中有區塊級作用域,所以es6引入了let;var在if和for迴圈中是沒有作用域的,只有藉助function的作用域來解引用作用域外面的變數問題,而let擁有區塊級作用域,一個「{}」就是一個作用域。
本教學操作環境:windows10系統、ECMAScript 6.0版本、Dell G3電腦。
因為var在if、for迴圈中是沒有作用域的,只有藉助function的作用域來解決引用作用域外面的變數的問題;而let在if、for迴圈中是有區塊級作用域的,這是var所沒有的功能,所以es6中使用let關鍵字而不是使用var。
因為在先前的JavaScript(ES5之前)中,var在像if ,for迴圈中是沒有作用域的,只有藉助function的作用域來解決引用作用域外面的變數的問題
在ES6中加入了let,它在if和for中是有塊級作用域的,let擁有塊級作用域,一個{}就是一個作用域,也就是let聲明塊級變量,即局部變量.
const 也是有區塊級作用域的,當我們的修飾的標識符不想再被改變賦值時用const
建議在ES6開發中優先使用const,只有想改變一個標識符的時候才會使用let
let的三大特性:
用於宣告變數的的關鍵字,必須先宣告再使用
let宣告的變數具有區塊級作用域
#暫時性死區特性
下面我透過案例向童靴們解析:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>使用let关键字声明变量</title> </head> <body> <script> //let关键字用于声明变量的,使用let关键字声明的变量具有块级作用域 let num = 10; console.log(num); //错误使用let(let声明变量只在所处于的块级有效) if (true) { let nums = 100; } console.log(nums); //nums is not defined </script> </body> </html>
瀏覽器控制器運行如下:
注意:var用於聲明全域變量,不具備區塊級作用域
// 在一个大括号中 // 使用let关键字声明的变量才具有块级作用域,var关键字是不具备这个特点的 if(true) { let a = 100;var b = 200; } console.log(a); consoLe.log(b);
瀏覽器控制器運作如下:
#【相關推薦:javascript影片教學、web前端】
以上是es6為什麼引用let的詳細內容。更多資訊請關注PHP中文網其他相關文章!