ES6新特性之let const

ES6新特性之let const

1 let关键字

1.1 let声明变量形式:

let a;          //声明一个变量
let b,c,d;      //同时声明多个个变量
let e = 1;      //声明一个变量同时赋值
let f = 2, g = 'string', h = [];       //声明多个变量同时赋值

1.2 let 关键字用来声明变量,使用 let 声明的变量有几个特点:

(1) 不允许重复声明

let str = 'hhh';
let str = 'wqe';
console.log(str); //会显示Uncaught SyntaxError: Identifier 'str' has already been declared  

(2)块级作用域(作用域分为全局、函数、eval)

// if else while for 等 {}里面的作用域都是块级作用域
{
   let name = 'hai';
}
console.log(name);  //会显示name is not defined

(3)不存在变量提升(变量可以在使用后声明,也就是变量可以先使用再声明,即函数及变量的声明都将被提升到函数的最顶部;var声明存在变量提升,let const声明不存在变量提升)

console.log(song);    //输出undefind
var song = 'music';

console.log(song);    //会显示song is not defined
let song = 'music';

(4)不会改变作用域链

{
   let st = 'fs';
   function fn(){
        console.log(st);   //fs
   }
   fn();
 }

2 const 关键字

2.1 const 声明常量

// 声明常量
const SCHOOL = 'xinankd';

2.2 const 关键字用来声明常量,const 声明有以下特点

(1)const 在声明时必须赋初始值

const A;                    //错误声明使用
const SCHOOL = 'xinankd';   //正确声明使用

(2)不能重复声明

let STR = 'hhh';
let STR = 'wqe';
console.log(STR);   //Identifier 'STR' has already been declared

(3)常量声明的值不能被修改

const SCHOOL = 'xinankd';
SCHOOL = 'XNKD';  
console.log(SCHOOL);  //Uncaught TypeError: Assignment to constant variable.

(4)块级作用域(与let 一致)

{
   const XA = 'nnn';
}
console.log(XA);  //显示XA is not defined

(5)对象属性修改和数组元素变化不会出发 const 错误

const LIKE = ['music','sleep','sheep'];
LIKE.push('book');
console.log(LIKE);  //["music", "sleep", "sheep", "book"]

通常来说,声明对象类型的变量使用const,声明非类型的变量使用let会好一些。

3 var let const 的区别

(1)var的作用域为全局作用域,声明的变量为全局变量;let、const声明的局部变量,作用域为块级作用域

(2)在同一作用域内,var 可以重复声明同一个变量;let、cons不可以

(3)var、let 可以先声明变量再赋值且可以修改;const 必须在声明的时候就赋初始值且不能再做修改

(4)var 存在变量提升,let、const不存在变量提升

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值