首頁  >  文章  >  web前端  >  es6為什麼引用let

es6為什麼引用let

WBOY
WBOY原創
2022-08-23 17:14:261842瀏覽

因為let在if、for迴圈中有區塊級作用域,所以es6引入了let;var在if和for迴圈中是沒有作用域的,只有藉助function的作用域來解引用作用域外面的變數問題,而let擁有區塊級作用域,一個「{}」就是一個作用域。

es6為什麼引用let

本教學操作環境:windows10系統、ECMAScript 6.0版本、Dell G3電腦。

es6為什麼引用let

因為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>

瀏覽器控制器運行如下:

es6為什麼引用let

注意:var用於聲明全域變量,不具備區塊級作用域

 // 在一个大括号中
 // 使用let关键字声明的变量才具有块级作用域,var关键字是不具备这个特点的
            if(true) {
              let a = 100;var b = 200;
            }
            console.log(a);
            consoLe.log(b);

瀏覽器控制器運作如下:

es6為什麼引用let

#【相關推薦:javascript影片教學web前端

以上是es6為什麼引用let的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn