zoukankan      html  css  js  c++  java
  • js中let和var的区别 不懂得加QQ 2270312758

    js中使用let定义变量的时候,是需要使用严格模式的,我看到网上有的博客说:如果在不使用严格模式的情况下,使用let会报错,但是在实验的过程中,我直接定义了let变量而且也没有使用严格模式,并没有报任何的错误。所以使用let的时候不使用严格模式会报错的情况不做过多的解释。

    我们在使用let的时候添加上'use strict'即可,按照要求来使用let。

    1.声明之后未赋值的情况,表现相同,都是undefined    

    不懂得加QQ 2270312758

    1.  
      <script type="text/javascript">
    2.  
      'use strict';
    3.  
      (function(){
    4.  
      var a;
    5.  
      let b;
    6.  
      console.log(a);//输出undefined
    7.  
      console.log(b);//输出undefined
    8.  
      })();
    9.  
      </script>

    2.重复声明同一个变量名并且两者的作用域相同的情况下,表现是不同的

    1.  
      <script type="text/javascript">
    2.  
      'use strict';
    3.  
      (function(){
    4.  
      var a='kka';
    5.  
      let b='akk';
    6.  
      //重新赋值
    7.  
      var a='kkaNew';
    8.  
      let b='akkNew';
    9.  
      console.log(a);//输出kkaNew
    10.  
      console.log(b);//程序报错 Uncaught SyntaxError: Identifier 'b' has already been declared
    11.  
      })();
    12.  
      </script>

    3.如果还是同一个变量名,但是作用域不同的情况下,两者的表现也是不同的

    1.  
      <script type="text/javascript">
    2.  
      'use strict';
    3.  
      (function(){
    4.  
      var a='kka';
    5.  
      let b='akk';
    6.  
      //重新赋值
    7.  
      if(true){
    8.  
      var a='kkaNew';
    9.  
      let b='akkNew';
    10.  
      }
    11.  
      console.log(a);//输出kkaNew
    12.  
      console.log(b);//输出akk
    13.  
      })();
    14.  
      </script>
    	//说明在var定义变量的时候'{}'里面的a和外面的a是同一个,所以a的值会被覆盖掉
     
    	//使用let定义变量的时候'{}'里面的b和外面的b不是同一个,所以b的值并没有发生改变
    努力在努力 QQ:2456314589 希望 对你们有所帮助
  • 相关阅读:
    POJ 2503 Babelfish
    POJ 1182 食物链
    POJ 2352 Stars
    POJ 2528 Mayor's posters
    POJ 1328 Radar Installation
    POJ 1017 Packets
    jQuery实现登录提示
    【1-5】jQuery对象和DOM对象
    【1-4】jQuery代码风格-导航栏
    【3】买苹果
  • 原文地址:https://www.cnblogs.com/-jth/p/9761039.html
Copyright © 2011-2022 走看看