探索JavaScript基础:let,const,var的对比分析

发表时间: 2023-12-04 09:02

let、const、var都是用来声明变量的关键字,有些小伙伴初学可能分不清,本文为大家总结一下。


三者之间的区别

1. var声明的变量作用域是函数级别的,而let和const声明的变量作用域是块级别的。块级作用域指的是花括号{}中的区域,例如if语句、for循环、函数等。

2. var声明的变量可以被重复声明,而let和const声明的变量不允许重复声明。

3. var声明的变量可以被修改,而const声明的变量不允许被修改,let声明的变量可以被修改。

4. const声明的变量必须在声明时初始化,而let和var可以不初始化。

5. const声明的变量必须是常量,即不能被重新赋值,而let和var可以被重新赋值。

总结:let和const是ES6新增的声明变量的关键字,它们的作用域是块级的,不允许重复声明,const声明的变量不能被修改,必须在声明时初始化。var是ES5中声明变量的关键字,作用域是函数级的,允许重复声明,可以被修改。

代码示例:

  1. Using var:
function varExample() {  if (true) {    var x = 10;    console.log(x); // 10  }  console.log(x); // 10}varExample();console.log(x); // 10
  1. Using let:
function letExample() {  if (true) {    let y = 20;    console.log(y); // 20  }  // console.log(y); // Uncaught ReferenceError: y is not defined}letExample();// console.log(y); // Uncaught ReferenceError: y is not defined
  1. Using const:
function constExample() {  const z = 30;  // z = 40; // Uncaught TypeError: Assignment to constant variable.  console.log(z); // 30}constExample();// console.log(z); // Uncaught ReferenceError: z is not defined

Hi,我是贝格前端工场,10年前端和UI老司机了,持续为大家分享有价值、有见地的观点、作品、干货,欢迎评论、关注、点赞、有事请私信。