zoukankan      html  css  js  c++  java
  • es6-块级作用域let 和 var的区别

    块级绑定

    js的处理机制和我们大家想象的完全不同,并不完全是所谓函数调用以及上下执行那样简单,它是存有”域”的本质区别的。

    var具有全局污染特性,所以es6才会出现let 、const。

    下面通过一些实例来给大家解释一下:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 
     4 <head>
     5     <meta charset="UTF-8">
     6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
     8     <title>Document</title>
     9 </head>
    10 
    11 <body>
    12 
    13     <!--
    14 undefined和null的区别?
    15 
    16 undefiend是定义了未赋值,而null是未定义
    17 -->
    18 </body>
    19 <script>
    20     // 我们所认识的
    21     function getValue(any) {
    22 
    23         if (any) {
    24             var val = 'blue';
    25             // 其他代码
    26             return val;
    27         } else {
    28 
    29             console.log(val)
    30                 // value值可以在此访问,值为undefined
    31             return null;
    32         }
    33         // value值在此处也可以访问,值为undefined
    34     }
    35 
    36     getValue();
    37 
    38     // Js引擎所认识的
    39     function getValues(anys) {
    40 
    41         var val;
    42 
    43         if (anys) {
    44             val = 'blue';
    45             // 其它代码
    46             return value;
    47         } else {
    48             return null;
    49         }
    50     }
    51 
    52     // 我们以为的var的作用域只限于那一块作用域内,实际上它已经跨越了“{}”界限。
    53     // val变量的声明被提升到了函数顶部,初始化工作区域还保留在原区域。
    54     // val变量也是可访问的,此处它的值会是undefined,因为它没有被初始化。
    55 </script>
    56 
    57 </html>

  • 相关阅读:
    静态资源分析 ------ CocosCreator
    性能分析 ------ CPU运行卡点
    神犇的blog
    0x01-1 原码 反码 补码 概念 原理 详解
    埃拉托色尼素数筛法(转)
    Miller-Rabin概率素数测试算法(转)
    欧拉函数(转)
    中国剩余定理(孙子定理)详解 (转)
    负数取模(转)
    HDU1430 BFS + 打表 + 康托展开(转)
  • 原文地址:https://www.cnblogs.com/cisum/p/7744099.html
Copyright © 2011-2022 走看看