美文网首页
var、let、const之间的区别

var、let、const之间的区别

作者: Goorln | 来源:发表于2023-10-19 14:14 被阅读0次

一、var

在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量

注意:顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象

二、let

let 是ES6新增的命令,用来声明变量

用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效

let不允许在相同作用域中重复声明

三、const

const声明一个只读的常量,一旦声明,常量的值就不能改变

区别:
  • 1. 变量提升

    var 声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined

    letconst 不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错

console.log(a)   // undefined
var a= 10

console.log(b)  // Cannot access 'num' before initialization
let b = 20

console.log(c)  // Cannot access 'num' before initialization
const c = 30
  • 2. 块级作用域

    var 不存在块级作用域

    letconst 存在块级作用域

{
    var a = 10
}
console.log(a)  // 10

{
    let b = 20
}
console.log(b)  // Uncaught ReferenceError: b is not defined

{
    const c = 30
}
console.log(c)  // Uncaught ReferenceError: c is not defined
  • 3. 重复声明

    var 允许重复声明变量

    letconst 在同一作用域不允许重复声明变量

var a = 10
a = 20
console.log(a)  // 20

let b = 10
b = 20
console.log(b)  // 20

const c = 10
c = 20
console.log(c) // Uncaught TypeError: Assignment to constant variable
  • 4. 修改声明的变量

    varlet 可以

    const 声明一个只读的常量。一旦声明,常量的值就不能改变

var a = 10
a = 20
console.log(a)  // 20

let b = 10
b = 20
console.log(b)  // 20

const c = 10
c = 20
console.log(c) // Uncaught TypeError: Assignment to constant variable
总结:能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var

相关文章

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • es6

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

  • JS中var、let、const区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • js中const,var,let区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • 面试题 var let const的区别 箭头函数和普通函数的区

    var let const 有什么区别 var var声明的变量可进行变量提升,let和const不会var可以重...

  • let和const

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

  • var let const之间的区别?

    1.var ①var声明的变量没有块级作用域,只有函数作用域和全局作用域 ②var声明的变量有变量提升 ③变量可以...

  • js 2022经典面试题汇总

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

  • ES6

    定义变量 let const 和 var 的区别 var 会进行预解析let / const 不会进行预解析预解析...

  • js 中 var let const 的区别

    很多人认为 var 和 let const 的区别在于,var 会变量提升,而 let const 不会,虽然可以...

网友评论

      本文标题:var、let、const之间的区别

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