javascript中var、let、const的区别

javascript中var、let、const的区别

目录

javascript中var、let、const的区别

1.作用域

2.提升

3.重复定义

4.全局声明

5.let与const

6.var全局

1.作用域

var 声明的范围是函数作用域,在函数开始时创建,函数结束时销毁;

function test(){
    var name="Matt";//局部变量
}
test();
console.log(name);//出错

let  声明的范围是块作用域,块作用域是函数作用域的子集,当块结束时let声明的变量就会被销毁;const 的作用域与let的相同。

if(true){
    let age=90;
    console.log(age);//90
}
console.log(age);//ReferenceError 未定义

2.提升

提升:把所有的变量声明都拉到函数作用域的顶部。

var声明的变量可以被提升(hoist);

function test(){
    console.log(age);
    var age=90;
}
test();//输出90

let、const声明的变量不会被提升;

function test(){
    console.log(age);
    let age=90;
}
test();//ReferenceError



function test(){
    console.log(age);
    const age=90;
}
test();//ReferenceError

3.重复定义

可以反复多次使用var声明同一个变量;

function test(){
    var age=90;
    var age=80;
    var age=70;
    var age=60;
    console.log(age);
}
test();// 60

let 不能重复声明同一个变量;const与let相同

function test(){
    let age=90;
    let age=80;
    console.log(age);
}
test();// SyntaxError

4.全局声明

var全局声明的变量会成为Window对象的属性;let、const全局声明的变量不会成为window对象的属性。

var age=90;
console.log(window.age); // 90
let age=80;
console.log(window.age); // undefined
const age=70;
console.log(window.age);// undefined

5.let与const

let与const 基本相同,唯一区别是 用const声明变量时必须初始化变量,且尝试修改const声明的变量会导致运行时错误。

6.var全局

在函数内部定义变量时省略var操作符,可以定义一个全局变量:

function test(){
   name="Matt";//全局变量
}
test();
console.log(name);// Matt

 

 

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值