• 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 希望 对你们有所帮助
  • 相关阅读:
    我的Ajax之旅(一):不能加载'AjaxControlToolkit'。。。拒绝访问
    网络编程(一):用C#下载网络文件的2种方法
    Locks
    Threads
    C语言中函数名和struct名可以重名!
    使用#include <pthread.h>
    APUE Chapter 7 (2)main函数的参数
    Creating a shared and static library with the gnu compiler [gcc][转]
    Signals
    APUE Chapter 7(3) – Memory layout of a C program
  • 原文地址:https://www.cnblogs.com/-jth/p/9761039.html
Copyright © 2020-2023  润新知