• JavaScript中var、let和const的区别


    JavaScript中var、let和const的区别


    var声明

    无论变量在何处被声明,使用关键字var声明的变量,都会被当作在当前作用域顶部声明的,这个现象被称作变量提升。

    function getValue(){
         if(condition){
              var value = 'something';      
          return value;
         }else{
              return null    
          }
    }

    等价于

    function getValue(){
         var value;
         if(condition){
              value = 'something';    
              return value;    
         }else{
              return null    
          }
    }

    在循环中,使用var关键字也很容易造成误会

    for(var i = 0;i < 10;i++){
          console.log(i);  
    }

    最终会返回10次10而不是预想中的0到9,并且在循环外也能访问变量i。

    在同一作用域下不能重复声明变量,但可以在嵌套的代码块中声明。

    在全局作用域中使用var关键字时,会覆盖window对象中的属性;

    let声明

    使用let声明时,可以把变量的作用域限制在当前代码块中,形成块级作用域,并且没有变量提升的现象。

    for(let i = 0 ; i < 10; i++){
          console.log(i);  
    }

    使用let在循环中可以分别打印0到9

    const声明

    const声明和let都是块级标识符,执行到代码块外会被销毁;

    const声明的常量一旦设定便不能修改,并且必须要进行赋值初始化;

    当用const声明对象时,可以修改对象的值,但不能修改变量与对象的绑定。

    const person = {
          name:'jack'  
    };
    person.name = 'rose';
    
    //抛出语法错误
    person = {
         name:'greg'  
    };

    在全局作用域中使用let,const关键字时,不会覆盖window对象中的属性;

  • 相关阅读:
    React Native商城项目实战08
    React Native商城项目实战07
    React Native商城项目实战05
    React Native商城项目实战06
    React Native商城项目实战04
    React Native商城项目实战03
    React Native商城项目实战02
    单选框input:radio
    myDate97用法
    STRUTS2配置动态页面
  • 原文地址:https://www.cnblogs.com/xianglan666/p/13942016.html
Copyright © 2020-2023  润新知