• 【ES6】var、let、const三者的区别


    1. 块级作用域 {}
            ES5 中作用域有:全局作用域、函数作用域。没有块作用域的概念。

             ES6 中新增了块级作用域。块作用域由 { } 包括,if语句和 for语句里面的{ }也属于块作用域。

     1 <script type="text/javascript">
     2 
     3 {
     4 var a = 1;
     5 console.log(a); // 1
     6 }
     7 console.log(a); // 1
     8 // 通过var定义的变量可以跨块作用域访问到。
     9 
    10 (function A() {
    11 var b = 2;
    12 console.log(b); // 2
    13 })();
    14 // console.log(b); // 报错,
    15 // 可见,通过var定义的变量不能跨函数作用域访问到
    16 
    17 if(true) {
    18 var c = 3;
    19 }
    20 console.log(c); // 3
    21 for(var i = 0; i < 4; i ++) {
    22 var d = 5;
    23 };
    24 console.log(i); // 4 (循环结束i已经是4,所以此处i为4)
    25 console.log(d); // 5
    26 // if语句和for语句中用var定义的变量可以在外面访问到,
    27 // 可见,if语句和for语句属于块作用域,不属于函数作用域。
    28 
    29 </script>

    2. var、let、const的区别
    var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
    let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
    const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。

     1 <script type="text/javascript">
     2 // 块作用域
     3 {
     4 var a = 1;
     5 let b = 2;
     6 const c = 3;
     7 // c = 4; // 报错
     8 var aa;
     9 let bb;
    10 // const cc; // 报错
    11 console.log(a); // 1
    12 console.log(b); // 2
    13 console.log(c); // 3
    14 console.log(aa); // undefined
    15 console.log(bb); // undefined
    16 }
    17 console.log(a); // 1
    18 // console.log(b); // 报错
    19 // console.log(c); // 报错
    20 
    21 // 函数作用域
    22 (function A() {
    23 var d = 5;
    24 let e = 6;
    25 const f = 7;
    26 console.log(d); // 5
    27 console.log(e); // 6 
    28 console.log(f); // 7 
    29 
    30 })();
    31 // console.log(d); // 报错
    32 // console.log(e); // 报错
    33 // console.log(f); // 报错
    34 </script>
  • 相关阅读:
    Ant构建原理及build.xml文档描述
    Selenium WebDriver的工作原理
    appium工作原理
    jmeter获取mysql数据并作为请求参数使用
    linux sar的使用
    hdu 1520 Anniversary party
    hdu 1331 Function Run Fun
    hdu 1208 Pascal's Travels
    hdu 1159 Common Subsequence
    poj 1129 Channel Allocation
  • 原文地址:https://www.cnblogs.com/bigbighu/p/11178300.html
Copyright © 2020-2023  润新知