• ES6新增const常量、let变量


    JavaScript 严格模式(use strict)

    严格模式下你不能使用未声明的变量。
    const c1 = 1; 
    const c2 = {}; 
    const c3 = []; 
    不能对c1的值进行再次的赋值;
    也不能在对c2,c3进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子
    c2.p1
    = 1; console.log(c2.p1)打印出来结果为1 同样,也可以往c3中添加元素,因为c3是个数组。
    const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致语法错误
    例如 const a=1; a=12; 这样会报错 
    同样 const a
    =0; a++;在use strict下一样会报错
    声明不赋值同样报错,const a; 报错
    let a
    =0; a++;可以被执行; let a=0; a=12;可以被执行
    let a
    =0; let a=12; 报错
     有区别于var在于他们存在块级作用于,就是你声明的变量只作用于某个域,比如一个函数,而不是全局,从上面也可以看出let 为变量 const为常量

    下面在具体举例说明

    1.let声明的变量只在变量声明时所在的代码块内有效 
    对比: 
    { 
      var url = "www.baidu.com"; 
    } 
      alert(url); 
    //-------------------------------- 
    { 
      let url = "www.baidu.com"; 
    } 
      alert(url); 
    2.let不允许在同一作用域重复声明变量: 
     let url = "www.baidu.com"; // 第一次
    { 
      let url="www.sina.com.cn"; //第二次
       console.log(url);  
    } // 第一次正确,第二次放到括号里面错误 
    3.let与全局变量的声明 
    //错误 
    let a=3; 
      { 
        var a=5; 
      } 
        alert(a); 
     
    //正确 
    var a=3; 
    { 
       let a=5; 
    } 
      alert(a); 
    4.作用到子作用域
    let a=3;
    {
       a=5;  //子作用域
    }
      alert(a); //弹出5

    二、const命令 

    const命令用来生成一个常量,常量被声明后,值无法改变。其他与let相同。
    const一旦定义,无法更改,let定义块级变量,他们都是无法重复声明的,会报错,而var可以覆盖之前的声明
  • 相关阅读:
    进程和线程
    yum安装apache后更改worker模式
    (转)top命令详解
    虚拟机linux在关机不正常的情况下出现的问题
    mysql赋予用户权限grant all privileges on
    lampp自带mysql远程访问问题
    扫盲
    linux常用命令使用
    剑指Offer对答如流系列
    剑指Offer对答如流系列
  • 原文地址:https://www.cnblogs.com/Model-Zachary/p/6106491.html
Copyright © 2020-2023  润新知