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>

  • 相关阅读:
    HDU-3622 Bomb Game 2sat
    HDU-4115 Eliminate the Conflict 2sat
    POJ-3678 Katu Puzzle 2sat
    [转]2-SAT问题及其算法
    Ros学习——roslaunch
    Ros学习调试——rqt_console
    Ros学习——创建程序包
    Ros学习service——小海龟
    Ros学习topic——小海龟
    旋转矩阵相关变换
  • 原文地址:https://www.cnblogs.com/cisum/p/7744099.html
Copyright © 2011-2022 走看看