JS中const、let、var的区别

const

  • const定义的变量不可修改,而且必须初始化

  • const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。

    但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

const a=2; //正确 const b; //错误,必须初始化 a=3 //错误,不可修改 

var

  • var定义的变量可以修改,并且声明的变量的作用域都是window下全局的,这样会污染全局

  • var声明的变量

function fun(){     var a=12 } console.log(a)//undefined 
  • 等于下面的
var a; function fun(){     var a=12 } 

let

  • let声明的变量则不会出现var的请矿
function fun(){     let a=12; // a变量只在 花括号内有效!!! } console.log(a)//Uncaught ReferenceError: a is not defined 
  • 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如未注明可能来源未知,如有侵权请联系管理员删除。

发表回复

后才能评论