ES6新增const常量、let变量

本文详细介绍了JavaScript中的严格模式及其对变量声明的影响,包括let和const的区别,以及它们的作用域特性。通过实例展示了let与var声明变量的不同之处,并解释了const用于声明常量的用法。

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可以覆盖之前的声明

 

转载于:https://www.cnblogs.com/Model-Zachary/p/6106491.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值