js中的var,let,const的区别

js中最熟悉的莫过于是var,这也是我们使用最多的,我们常用这个来声明全局变量,并且可以多次赋值,但是这也容易使定义的变量被污染:

1.先说下var:

var a = 1; //此处声明的变量a为全局变量
function test(){
   var a = 2;//此处声明的变量a为函数foo的局部变量
   console.log(a);//2
}
test();
console.log(a);//1

所以,一般使用var来定义全局变量,也可以反复定义。而且因为JS存在预解析的原因,会存在变量提升,列如:

console.log(a) // 打印出来是undefined,不会报错

var a = 1 

2.let 是es6中用来声明变量的,相比较于 var 来说不存在变量提升,同一作用域下不能重复定义:

let tt = 11
let tt =3

// 报错不能重复定义:VM75:2 Uncaught SyntaxError: Identifier 'tt' has already been declared



console.log(a) // 报错未定义
let a = 9




let b = 9
function kk (){
    let b = 22
    console.log(b) // 22 后被调用
}
console.log(b) // 9  先打印
kk()



let wo = 90
if(true){
    let wo = 78
}
console.log(wo) // if 里面的变量是一个作用域,不受外面的定义的变量影响

3.最后一个就是const,也是es6中才有的,和let使用差不多,区别就是:const 定义的变量是只读性质的;

const bb // 没赋值,会报错。let 声明变量没赋值不会报错


const pp = 90
const pp = 80  // 会报错,不能重复定义,只读模式定义后不能再次重复定义


const kk = {}
kk.name = '小米'  // 不会报错,对象是一个地址,而不是具体的值,当对象添加属性后,具体地址会指向具体的值。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值