let、const、var使用区别

let 和var

  1. 变量提升
console.log(a);
var a='这是A';
//等效于
var a1;
console.log(a1);
//输出为undefined

变量的提升不包括值得提升

如果使用let

console.log(b);//直接报错了不向下运行
let b = '这是B';

let b1;
console.log(b1);
b1 = '这是B1';
  1. 重复定义
var a1 = 100;
var a1=101;
console.log(a1);//输出100

使用let

let b1 = 100;
let b1=101;//Uncaught SyntaxError: Identifier 'a1' has already been declared
console.log(b1);

注意,使用let时候只是不能重复定义,但是可以修改

let b1 = 100;
    b1=101;
console.log(b1);//101
  1. 作用域
function fun() {
    var n = 10;
    if (true) {
        let n = 100;
    }
    console.log(n);//10
}
fun();

var函数作用域,let块作用域

下面例子加深一下印象

if (true) {
    var a = 100;
    let b = 9;
}
console.log(a);//100
console.log(b);//Uncaught ReferenceError: b is not defined

const

  • 和let相似,使用更严格

  • 申明一个只读的变量,一旦定义好了常量的值就不可以修改

const a=1000;
a=10;//Uncaught TypeError: Assignment to constant variable.

这里得注意是常量,如果是引用数据类型比如数组对象,存储的是引用地址,是可以修改的

const a = {};
a.name = 'any';
console.log(a);//{name: "any"}
  • 必须得初始化定义好
const a;
a=10;//Uncaught SyntaxError: Missing initializer in const declaration
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容