let和const的使用

标题简介

首先我们先了解一下let
let 是ES6新增的声明变量的语法 作用类似于var
es6以前的是没有块级作用域的

let声明的变量特点

  1. 使用let声明的变量 只在let所在的代码块起作用 (变量绑定)
  2. 在同一代码块内(块级作用域) 使用let声明的变量 可以重新赋值 但是不能重新声明
  3. let声明的变量 必须在声明之后才能使用(不存在变量提升)
  4. 暂时性死区
  5. 在全局作用域内使用let声明的变量 但是不属于全局对象的属性

1.我们先了解一下最基本的写法

            let a=10;
            var b=20;
            console.log(a);
            console.log(b);

输出结果如图所示:
在这里插入图片描述解析:这个时候我们现在用let声明的变量,已经好处我们一部一部的解析

2.暂时性死区

if(true){
                a='123';
                console.log(a); //ReferenceErro
                let a;
                console.log(a); //undefined
                a=123;
                console.log(a);//123
            }

3.没有变量提升的能力

 console.log(a);//报错
            let a=10;
            console.log(b);//undefined
            var b=20;

解析:这里我们可以看到,我们使用let的关键字定义出来的变量会报错啊,不过使用var的关键字定义出来的并没有报错,这说明了let关键字定义出来的变量并没有变量的提升能力
4.不能带有重复声明

  function fn(){
         let a = 10;
         let a =1;
         console.log(a);
     }
     fn()

输出结果 :Uncaught SyntaxError: Identifier ‘a’ has already been declared

下面我们看一下const
1.他一旦声明过后,数据就不可改变

const a = 1;
    a= 12;
    console.log(a);//Uncaught TypeError: Assignment to constant variable.

2.用const一旦声明后,就必须赋值

const a; 
a = 10;
  console.log(a);//Missing initializer in const declaration

3.存在暂时性死区

if(true){
const a =5;
}
console.log(a)// a is not defined

4.不可提前声明,必须先定义后再使用比如

console.log(a);//Uncaught ReferenceError: Cannot access 'a' before initialization
const a =10;

举个栗子;
1.var声明变量是否会再变量提升呢?let和const是否存在变量提升?

console.log(a);
 var a = 100; 

答:// undefined ==> a已声明还没赋值【var a】,默认得到undefined值

console.log(b);
 let b = 10;

答: // Uncaught ReferenceError: b is not defined ==> 报错:找不到b这个变量

 console.log(c);
 const c = 10;

答: // Uncaught ReferenceError: b is not defined ==> 报错:找不到c这个变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值