var、let与const声明变量的特点

  • var
    1.可以使用window.变量名访问,浏览器中全局对象是window,var声明对象方法可能污染全局环境
    2.可以重复声明同名变量
    3.变量自动提升,在声明变量前使用变量值为undefined

console.log(testVar);//undefined
var testVar = 3;
console.log(window.testVar);//3

  • let
    1.不会变量自动提升,在声明变量前使用变量会报错
    2.只在声明变量的块级作用域内可以访问
    3.不能在同一作用域内重复声明
    4.可以只声明不赋值

console.log(testLet);//ReferenceError
let testLet = 23;
let testLet = 2;//SyntaxError

function printTest() {
    let out = 2;
}
console.log(out);//ReferenceError

  • const
    1.必须声明时赋值
    2.赋值后不能改变变量的内存地址
    3.不会变量自动提升
    4.不能重复声明
    5.对象的属性可以添加和改变,对于想要冻结对象可以使用Object.freeze()

const testConst;//SyntaxError
const testConst = {name:'jay',age:23};
console.log(testConst.age);//23
testConst.age=33;
console.log(testConst.age);//33

const obj = {name:'lin',age:11};
Object.freeze(obj);
obj.age = 23;//忽略操作 但是在严格模式下报错
console.log(obj.age);//11
'use strict';//以下使用严格模式编译
obj.age = 23;// ReferenceError

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值