美文网首页
JS 中 var、let 与 const 的用法和区别

JS 中 var、let 与 const 的用法和区别

作者: limengzhe | 来源:发表于2020-09-29 14:45 被阅读0次

varletconst 都是 JavaScript 中声明变量/常量的关键字。

var

  • 声明的变量可以被再次声明并覆盖;
var a = 1;
var a = 2;
console.log(a); // expected output: 2
  • 会造成变量提升(已声明,未赋值);
console.log(a); // expected output: undefined
var a = 1;
  • iffor 循环中声明的变量会泄露成全局变量并且覆盖之前声明的变量
// 泄露
if (true) {
  var a = 1;
}
console.log(a); // expected output: 1

// 泄露
for (var i = 0; i < 5; i++) {
  // some function
}
console.log(i); // expected output: 5

// 不泄露
function b() {
  var c = 2;
}
console.log(c); // ReferenceError: c is not defined

let

  • 不允许重复声明;
let a = 1;
let a = 2;
console.log(a); // SyntaxError: Identifier 'a' has already been declared
  • 不会造成变量提升;
console.log(a); // ReferenceError: Cannot access 'a' before initialization
let a = 1;
  • 具有块级作用域,声明的变量只在所在的 {} 代码块内有效。
if (true) {
  let a = 1;
}
console.log(a); // ReferenceError: a is not defined

const

  • const 用来声明常量,即不允许重新赋值(修改变量指向的内存地址),也不允许重复声明;
// 不允许重新赋值
const data = { a: 1 };
data = { a: 1, b: 2 };
console.log(data); // TypeError: Assignment to constant variable.

// 不允许重复声明
const data = { a: 1 };
const data = { a: 1, b: 2 };
console.log(data); // SyntaxError: Identifier 'data' has already been declared

// 允许
const data = { a: 1 };
data.b = 2;
console.log(data); // expected output: { a: 1, b: 2 }
  • 不会造成变量提升;
console.log(a); // ReferenceError: Cannot access 'a' before initialization
const a = 1;
  • 具有块级作用域,声明的常量只在所在的代码块内有效。
if (true) {
  const a = 1;
}
console.log(a); // ReferenceError: a is not defined

相关文章

  • ES6之let与const

    一、let与const 先说结论:let和 const的用法类似var,都是用来声明变量, 这两者的区别在于:co...

  • JS 中 var、let 与 const 的用法和区别

    var、let 与 const 都是 JavaScript 中声明变量/常量的关键字。 var 声明的变量可以被再...

  • js 2022经典面试题汇总

    1.JS数据类型有哪些 2.var、let、const区别 var存在变量提升,而let、const没有 let、...

  • let和const

    let/const(常用) let和var 区别 let,const用于声明变量,用来替代老语法的var关键字,与...

  • sample

    一、var与let JS中的块级作用域,var、let、const三者的区别 var是函数级作用域,没有块级作用域...

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • 2019-03-03

    es6 第二章 let和const命令 let 基本用法 let和var的区别let:只在定义的代码块中起作用va...

  • 2018-09-04

    js变量和常量 JS中与变量常量声明相关的关键字有var、let以及const,其中let和const是ES6的新...

  • 【JS】从ECMA学习let、const、var变量声明与声明提

    let、const、var是JS中的声明关键字 let和const 我们熟知的let和const的特性,常见的就有...

  • LET 与 CONST 命令 -ES6初学习第一节

    ES6 中 let 和 const 是新的声明变量的方式 let 与 var 的一些用法区别 块级作用域 这一句是...

网友评论

      本文标题:JS 中 var、let 与 const 的用法和区别

      本文链接:https://www.haomeiwen.com/subject/utxeuktx.html